0

express(item/update/)にルートがあり、その後、それらをに送り返したいのですが、「Success」または「Failure」でアラートを表示し/たいと思います。/クエリ文字列やハッシュはユーザーから非表示にしたいので、使用したくありません。また、悪い考えのように思われるので、レンダリング/したくありません。items/updateまた、javascript history apiを試しましたが、history apiは別のものであったため、これはハックのようです。

他に必要な情報がありましたらお知らせください。

4

1 に答える 1

2

あなたはいくつかの方法を行うことができます、

1.クエリ文字列を使用して「/」URLにリダイレクトできます。クエリ文字列にデータを追加したくないので、代替オプションはセッションです。

例えば、

function itempUpdateHandler(request,response){
 //Do some stuff
 request.session.displayMsg = "update done successfully";
 response.setHeader("Location: http://yourdomain.com/");
 response.end();
}

function homepageHandler(request,response){
//Display message here which is read from session.
if(request.session.displayMsg){
  console.log(request.session.displayMsg);
  delete request.session.displayMsg;
}
//Do your regular suff here.
}

2.次の方法ではもう少し注意する必要があります。ここではリダイレクトしませんが、ハンドラー関数を次のように変更する必要があります。

function itempUpdateHandler(request,response){
 //Do some stuff
 //response.setHeader("Location: http://yourdomain.com/"); //no need here
 homepageHandler(request,response, {display:true, msg: "update done successfully"});
}

function homepageHandler(request,response, moreArgs){
//Display message here which is read from session.
  if(moreArgs.display){
       console.log(moreArgs.msg);
  }
//Do your regular suff here.
}

注:エクスプレスを使用していると仮定します

于 2013-02-11T08:53:32.517 に答える