ホームページ  >  記事  >  ウェブフロントエンド  >  cors と ajax の違いは何ですか

cors と ajax の違いは何ですか

WBOY
WBOYオリジナル
2022-07-01 16:52:271472ブラウズ

cors と ajax の違いは次のとおりです。cors がリクエストを行うと、現在のリクエストがクロスドメインリクエストであることを示すために HTTP リクエストヘッダーにいくつかのキーワードが追加されますが、これらのキーワードは追加されませんajax リクエストを行う場合、cors は「Cross-origin resource Sharing」の略で、クロスオリジンのリソース共有を意味します。

cors と ajax の違いは何ですか

#この記事の動作環境: Windows10 システム、javascript1.8.5&&html5 バージョン、Dell G3 コンピューター。

CORS と Ajax の違い:

リクエストを送信するとき、CORS と Ajax の間に違いはありません。どちらも http リクエストです。唯一の違いは CORS リクエストです。 の場合、現在のリクエストがクロスドメイン リクエストであることを示すために、http リクエスト ヘッダーにいくつかのキーワードが追加されます。

拡張知識:

CORS は W3C 標準であり、正式名は「クロスオリジン リソース共有」です。ブラウザを使用して http リクエスト (ajax) を送信するときにクロスドメインの問題が発生することはわかっていますが、現在の主流のクロスドメイン ソリューションは CORS です。

ここで特に強調したいのは、私たちがよく話題にするクロスドメインはブラウザーの制限にすぎないということです。スクリプトを使用してリクエストを送信したり、サーバー経由でリクエストを送信したりする場合、クロスドメインは発生しません。この問題の主な理由は、ブラウザが使用するしきい値が非常に低いことです。下心を持つ人々が一般ユーザーを攻撃するのを防ぐために、クロスドメイン ポリシーが導入されています。

CORS の概要

CORS は、2014 年 1 月 16 日に W3C によってリリースされた、主にユーザー エージェント Web アプリケーションがリソースにアクセスし、Ajax またはその他のメカニズムを通じて別のサイトからデータを取得する問題を解決する、正式に推奨された通信標準です。

前提: サーバーは CORS をサポートする関連機能を追加する必要があります。つまり、http

CORS 通信はブラウザーによって完了する、Access-Control-Allow-Origin の許可値を設定する必要があります。ユーザーの参加は必要ありません。デフォルトでは、ブラウジングは Ajax を介して通信します。リクエストの送信時にブラウザーが現在のリクエストがクロスドメインであることを検出すると、自動的に CORS

CORS## の 2 つのリクエスト モードに変換されます。 #ブラウザは、CORS リクエストを単純なリクエストと単純でないリクエストの 2 つのカテゴリに分類します。

単純なリクエストとは、set リクエスト メソッドを使用してデータをリクエストすることです。

非-単純なリクエスト set request メソッドを使用してデータをリクエストする前に、サーバーがクライアントに非単純なリクエストの送信を許可するかどうかを確認するために、最初に OPTIONS リクエストが送信されます。「プリフライト」が渡された後にのみ、別のリクエストがデータ送信のために送信されます

以下の2つの条件を同時に満たしていれば簡単なリクエストです。

条件 1:

リクエストメソッドは次の 3 つのメソッドのいずれかです:

HEAD

GET

POST

条件 2:

HTTP ヘッダー情報が次のフィールドを超えない:

Accept
Accept-Language
Content-Language
Last-Event-ID
Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain

単純なリクエスト

単純なリクエストは、ブラウザが CORS リクエスト (ajax リクエスト) を直接送信することです。送信前に、ブラウザはこの http リクエストにリクエスト ヘッダー Origin

を追加します。上記のヘッダー情報では、Origin フィールドは、このリクエストの送信元 (プロトコル ドメイン名ポート) を示すために使用されます。サーバーは、この値に基づいてリクエストに同意するかどうかを決定します。

非単純リクエスト

非単純リクエストは、リクエストを送信する前に OPTIONS リクエストを送信し、そのリクエストが許可されているかどうかを事前に確認することです。目的はクロスドメインを防止することです。リクエストはバックグラウンド データを破壊または盗用します。単純なリクエストは安全性が低くなります。サーバーはリクエストの処理後にデータを返します。非単純リクエスト モードでは、サーバーは早期検出中にリクエストを処理すべきではありません。

[関連チュートリアルの推奨事項:

AJAX ビデオ チュートリアル

]

以上がcors と ajax の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。