以前は何が起こっているのかまったく理解できませんでしたが、もう他に選択肢がないので、ドキュメントを注意深く読み、最終的にテストが成功しました。注意してください
1、同じドメイン名と他のリクエストも同じである可能性があります
js:
コードは次のとおりです:
var url="http://localhost:2589/a.ashx";
$(function(){
$.getJSON(url,function(data){
alert ( data.Name) ;
})
});
サーバーは異なるドメイン名で string:
{"Name":"loogn","Age":23} を返します:
コードは次のとおりです:
var url="http://localhost:2589/a.ashx?callback=?";
$(function(){$.getJSON(url,function(data){
alert (data.Name);
})
});
jQuery
1706543070425920333_1324445763158({"Name":"loogn","Age":23}) 戻ってきたstring は "jQuery1 706543070425920333_1324445763158 " 関数
という呼び出しです。パラメーターは {"Name":"loogn","Age":23} です。実際、この非常に長い関数名はリクエスト パス内の callback=? の関数であり、次のようになると思います。 $.getJSON メソッドはコールバック メソッドへの reference 名を生成します。 。上記のリクエストは
http://localhost:2589/a.ashx?callback=jQuery1706543070425920333_1324445763158&_=1324445763194 のようになります。
コードは次のとおりです。
文字列
context.Response.Write(cb + "(" + json + ")");
パラメータ名は jsoncallback に置き換えることもできると思います。競合を恐れるため、jsoncallback は検出を優先する必要があります。それ以上の検出コールバックはありません (テストされていません!!)
?
コールバック関数
以上がjquery $.getJSON() クロスドメインリクエストの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。