jsonp
jQuery.ajax のドキュメント、具体的にはとの 2 つのオプションを理解できませんjsonpCallback
。
私が理解しているjsonp
のは、サーバーが期待する GET パラメータの名前 (通常は「コールバック」) でありjsonpCallback
、応答をラップする関数の名前であるということです。シンプルに見えます。
しかし、jQuery.ajax docの説明は、これを少し複雑にしています。jsonp
ここでオプションの完全なテキストを引用し、わかりにくいものを太字でマークしたいと思います。
jsonp
jsonp リクエストでコールバック関数名をオーバーライドします。この値は、 「callback=?」で「callback」の代わりに使用されます。URL のクエリ文字列の一部。したがって、 {jsonp:'onJSONPLoad'} は 'onJSONPLoad=?'になります。サーバーに渡されます。jQuery 1.5 の時点で、jsonp オプションを false に設定すると、jQuery が「?callback」文字列を URL に追加したり、「=?」を使用しようとしたりするのを防ぐことができます。変身のために。この場合、jsonpCallback設定も明示的に設定する必要があります。たとえば、{ jsonp: false, jsonpCallback: "callbackName" }
質問は次のとおりです。
1.「=」ってどういう意味?または「callback=?」(追加の疑問符)?ここのように JSONP AJAX リクエストを実行すると:
$.ajax('http://fake.com',{
dataType: 'jsonp',
success: function(data) {console.log(data);}
});
URL は次のようになります。クエスチョン マークはありません。
http://fake.com/?callback=jQuery18104830878316494931_1352981996209&_=1352981999411
2.追加パラメータ(アンダースコア)とは_=1352981999411
?
3.言葉のIn this case, you should also explicitly set the jsonpCallback setting
意味は?相互関係が見えません。を設定{ jsonp: false, jsonpCallback: "callbackName" }
すると、ドキュメントに記載されているように、クエリは次のようになります。
http://fake.com/?_=1352981999411
「callbackName」はまったく使用されていないのに、なぜそれを指定するのですか?
私の感謝。