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

jsonpとajaxの違いは何ですか

青灯夜游
青灯夜游オリジナル
2022-01-13 18:16:593545ブラウズ

違い: 1. ajax のコアは、xmlHttpRequest を通じてこのページ以外のコンテンツを取得することですが、jsonp のコアは、スクリプト タグを動的に追加して、サーバーが提供する js スクリプトを呼び出すことです; 2. jsonp のみajax は get リクエストと post リクエストをサポートしますが、get リクエストをサポートします。

jsonpとajaxの違いは何ですか

このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

ajax と jsonp の呼び出しメソッドは非常に似ています。目的は、URL をリクエストし、サーバーから返されたデータを処理することです。そのため、jquery や ext などのフレームワークは、jsonp を ajax の形式としてカプセル化します。 。 jsonp と ajax を見て、その違いを紹介しましょう。

1. Ajax の動作原理

ユーザーとサーバーの間に中間層 (AJAX エンジン) を追加するのと同じなので、ユーザーの操作とサーバーの応答が非同期であること。 Ajax エンジンは、ユーザー リクエストに対して一部のデータ検証とデータ処理を行います。すべてのリクエストがサーバーに送信されるわけではありません。サーバーから新しいデータを読み取る必要がある場合、Ajax エンジンが代わりにサーバーにリクエストを送信します。 AJAX の最大の利点は、ページ全体を更新せずにサーバーと通信してデータを維持できることです。

プロセス:

最初のステップ: Ajax エンジン オブジェクトを作成します。IE6 は新しい ActiveXObject、他のブラウザーは新しい xmlHttpRequest オブジェクトです。

2 番目のステップ: open メソッドを呼び出します。送信リクエストを開始します。open メソッドは、リクエスト タイプ、リクエスト URL、およびブール値の 3 つのパラメータを渡します。

3 番目のステップ: send メソッドを呼び出して送信します。

4 番目のステップステップ: コールバック関数 onreadystatechange を処理し、readState = 4 (応答データが完了)、ステータス = 200 (要求成功) のときに応答データを処理します。

注: コールバック関数は、open() および send() の前に記述する必要があります。

2. Jsonp の動作原理

スクリプト タグを動的に作成し、スクリプト タグの src 属性を使用して制限なしのクロスドメイン アクセスを実現します。 。

Web クライアントは、スクリプトを呼び出すのと同じ方法で、クロスドメイン サーバー上で動的に生成された js 形式のファイル (拡張子 .json) を呼び出します。サーバーによって動的に生成された json ファイルの目的は、クライアントが必要とするデータ。

ユーザーがコールバック パラメーターをサーバーに渡すことができ、サーバーがデータを返すときに、このコールバック パラメーターを関数名として使用して JSON データをラップし、クライアントが独自のパラメータをカスタマイズできるようにします。返されたデータを自動的に処理する関数。

3. Ajax と jsonp の違い

  • ajax の中核は、このページ以外のコンテンツを取得することです。 through xmlHttpRequest;

    jsonp の核心は、サーバーによって提供される js スクリプト (接尾辞 .json) を呼び出すためのスクリプト タグを動的に追加することです。

  • jsonp はメソッドまたは非必須プロトコルであり、ajax はデータの送信に必ずしも json 形式を使用する必要はありません。

  • jsonp は get リクエストのみをサポートし、ajax は get リクエストと post リクエストをサポートします。

【関連チュートリアルの推奨事項: AJAX ビデオ チュートリアル ]

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

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