違い: 1. ajax のコアは、xmlHttpRequest を通じてこのページ以外のコンテンツを取得することですが、jsonp のコアは、スクリプト タグを動的に追加して、サーバーが提供する js スクリプトを呼び出すことです; 2. jsonp のみajax は get リクエストと post リクエストをサポートしますが、get リクエストをサポートします。
このチュートリアルの動作環境: 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 サイトの他の関連記事を参照してください。