リモート サーバーからデータをフェッチする場合は、JSONP が最適なツールだと思います。しかし、私が見た例に混乱しています:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
dataType: 'jsonp',
data: 'p3=c',
jsonp: 'callback',
url: 'http://someserver.com/app?p1=a&p2=b',
success: function (data) {
console.log("data="+data);
$.each(data, function (i, r) {
console.log("i="+i);
console.log("r="+r);
});
},
});
});
</script>
リクエストで、jQuery1234567890 形式の値を持つコールバック パラメータが追加されていることがわかります。そのリクエストを処理するアプリを見ると、リクエストからコールバック パラメーターを抽出し、返される json データをそれと関連するブラケットでラップするため、最終的に次のようなものが返されます。
jQuery1234567890([{"x":"100","y":"101"},{"x":"200","y":"201"}])
だから私の最初の質問は次のとおりです。
(1) アプリが機能していることは正しいですか?
(2) jQuery / JSONP は実際に私たちのために何をしてくれましたか?
私は、jQuery が「jsonp」の dataType を認識し、スクリプト タグを DOM に挿入すると、ブラウザがスクリプトをダウンロードして実行すると想定していました。そうである場合、jQuery は関数 jQuery1234567890 を作成しましたか? その実装は、パラメーターを success 関数に渡すことですか?
(3) 私の理解は正しいですか (そうではないと思います)?
ありがとうございました、
ポール