ホームページ  >  記事  >  ウェブフロントエンド  >  jqueryのajaxクロスドメインリクエストの原則とexamples_jquery

jqueryのajaxクロスドメインリクエストの原則とexamples_jquery

WBOY
WBOYオリジナル
2016-05-16 16:49:291028ブラウズ

今日、プロジェクトでリモート データをロードしてページをレンダリングする必要がありましたが、開発段階まで Ajax クロスドメイン リクエストの問題に気づきませんでした。Jquery が Ajax クロスドメインに対する解決策について言及していたことを漠然と思い出しました。
JQuery には Ajax クロスドメイン リクエスト用のソリューションが 2 種類ありますが、どちらも get メソッドのみをサポートしていることがわかりました。それは、JQuery の jquery.ajax jsonp 形式と jquery.getScript メソッドです。

jsonp形式とは何ですか? API原文:取得したデータファイルがリモートサーバー上に保存されている場合(ドメイン名が異なる場合、つまりクロスドメインデータ取得)、jsonp型を使用する必要があります。このタイプを使用すると、リクエストされた URL に追加されるクエリ文字列パラメータ callback=? が作成されます。有効な JSONP リクエストを完了するには、サーバーは JSON データの前にコールバック関数名を追加する必要があります。つまり、リモート サーバーは、クライアントから送信されたコールバック パラメーターに従って、返されたデータを処理してコールバック (json) データを返す必要があり、クライアントはスクリプトを使用して返されたデータを処理して、json データを処理します。 JQuery.getJSON は、jsonp データ メソッド呼び出しもサポートしています。

クライアント側の JQuery.ajax 呼び出しコードの例:

コードをコピー コードは次のとおりです。

$.ajax({
type : "get "、
async:false、
url : "http://www.xxx.com/ajax.do"、
dataType : "jsonp"、
jsonp: "callbackparam" ,// コールバックの関数名を受け取るためにサーバーが使用するパラメータ call
jsonpCallback: "success_jsonpCallback", // コールバックの関数名
success: function(json){
alert( json);
alert( json[0].name);
error:function(){
alert('fail');
});


サーバーから返されるデータのサンプル コード:

public void ProcessRequest (HttpContext context) {
context .Response.ContentType = "text/plain";
String callbackFunName = context.Request["callbackparam"];
context.Response.Write(callbackFunName "([ { name:"John"}] )") ;
}


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