2011-07-29 32 views
1

2つのGETリクエストがあります。GETリクエストの違い?

1)「通常の」GET(ページの再読み込みを伴う)。

2)ajax GET(sync、async)バックグラウンドリクエスト。

これらの違いは何ですか? HTTP標準はそれを区別するのですか?

答えて

3

いいえ違いはありません。 jQueryのようないくつかのブラウザといくつかのフレームワークでは、追加のヘッダーが送られますが、好きな場合は区別することができます。さもなければ、彼らは同じように扱われます。

1

いいえ、HTTP標準では区別されません。この区別はブラウザレベルで適用されます。

大きな違いは、XMLHttpRequest(「ajax」リクエスト)によるリクエストにはSame Origin Policyが付いている点です。通常のGETはありません。つまり、通常の場合、スクリプトが実行されているページとは別の「起源」からリソースを取得するために、真の "ajax"リクエストを使用することはできません。 (それはあなたのスクリプトが実行されているページの起源であることに注意してください。ではなく、あなたのスクリプトファイルの起源はどこからでも可能です)

「ajax」を十字-origin:

  • Cross Origin Resource Sharing(CORS)は一部のブラウザでW3Cによって定義され、実装された新しい(っぽい)技術です。これにより、要求されているリソースが、要求元の文書によって使用されるかどうかの決定を行うことができます。 IEのサポートは壊れていますが、は、XMLHttpRequestではなく独自のXDomainRequestオブジェクトを使用する必要がありますが、すべての主要ブラウザの最新バージョンでサポートされています。
  • JSON-Pは実際には「ajax」リクエストではないという制限を回避して動作します。代わりに、クライアントとサーバの両方が遵守する規約があり、クライアントがサーバからのスクリプトをscript要素を介して含めることができます。
+0

私は、同じ原点ポリシーがPOST要求にのみ適用されると考えました。このスクリプトは、通常は動的に生成され、その唯一の目的は、関数を呼び出すことによってJavaScriptオブジェクトをペイロードとして配信することです。 – GolezTrol

+0

@Golez:いいえ、 'GET'でも' POST'でも 'PUT'や' DELETE'でも、 'XMLHttpRequest'で生成された(例えば" ajax ")リクエストにも適用されます。JSON- Pは、実際には "ajax"コールではなく)SOPの終わりを走りますが、 'GET'のためだけに機能します(なぜなら、ドキュメントにスクリプトファイルを追加するだけなので)。 –

+0

これをクリアしていただきありがとうございます。あなたは+1を獲得しました – GolezTrol