2010-11-25 21 views
1

GET:'getPendingList'を送信するAJAXリクエストがあります。このリクエストは、承認が必要な保留中のリクエストを示すJSON文字列を返す必要があります。ここでGETまたはPOSTを使用すべきかどうかについて少し混乱しています。 this websiteからAJAXリクエストを作成するコンテキストでGETとPOSTの違いは何ですか?

は:

  • GETリクエストをキャッシュできる
  • GET要求が
  • GETリクエストをブックマークすることができますブラウザの履歴に残ることができ
  • GETリクエストは、&が
  • を共有配布することができますGETリクエストをハッキングすることができます(ヤコブにお尋ねください)

私は思っています:保留中のリストが変更される可能性があるため、このGETの結果をキャッシュしたくありません。一方、POSTを使用しても意味をなさないようです。

GETとPOSTについてどうすればよいですか?私は、GETは「読んだ」と同じだと言われてきました。サーバー側で何も変更しない(または変更しない)必要があります。意味あり。キャッシングの部分は理にかなっていません。私はデータが変わることを期待しているので、他の誰かが私のGET要求をキャッシュしていれば、私にとってはうまくいかないでしょう。

答えて

0

IRC'ingの後、これを行うための最良の方法は、(この特定のインスタンスで)GETを使用することですが、キャッシュを防ぐためです。これを行うには2通りの方法があります:

1)GETリクエストにランダムな文字列を追加します。

これは、これを行うにはハッキーな方法のようですが、それはIEのための唯一の解決策かもしれないように聞こえます:Prevent browser caching of jQuery AJAX call result

2)サーバーからの応答で、ヘッダーをno-cacheに設定します。

この場合の決定的な動作が何であるかは不明です。いくつかの人々(前のリンクを参照)は、IEがno-cacheディレクティブを尊重しないと主張しています。他の人々はこれが働くと思うようです:Internet Explorer 7 Ajax links only load once

0

要するに、GETリクエストはidempodentである必要があります。 POSTリクエストはありません。

状態を変更する場合は、POSTを使用してください。それ以外の場合はGETを使用してください。

GET/POSTでキャッシングすると、ブラウザキャッシングとなることを忘れないでください。

データサーバー側のキャッシュを停止するものはありません。

また、一般的に - JSONはPOSThere's why

+0

私はGET要求をキャッシュしません。例:リソースがa.jpgあるとします。私はこれについてGETを行う。しかし、私はそれをサーバー上で変更します。ブラウザがa.jpgをキャッシュすると、クライアントは古いデータを持っています。だから、残念ながらPOSTのように聞こえるのが最高です。ここからの最初の答えを見てください:http://stackoverflow.com/questions/3477333/what-is-the-difference-between-post-and-get – Avery

+0

@Avry - はい、あなたはそれにquerystring paramsを追加することで解決できますファイル(CSSファイルがある既知のトリック)。 – RPM1984

1

Yahooのbest practicesが終わっ読む価値があるかもしれないする必要があります呼び出します。主に情報を取得するためにGETを使用し、情報を更新するためにPOSTを使用することをお勧めします。別の項目では、とすることをお勧めします。ここでは、AJAXリクエストをキャッシュできるようにしています。それをチェックして、それは良い読書です。

関連する問題