AJAX、jQuery、Phonegap を使用して iOS/Droid アプリを作成しています。バックエンドは、Web サービスを介してコンテンツを提供する Drupal 7 サイトです。ただし、JSONP コールバックの必要性については少し混乱しています。
私の理解では、クロス ドメイン リクエストを許可するには JSONP が必要です。また、部分的には、JSON データをコールバック関数内にラップしてオブジェクトにすることで機能します。
ただし、私が見つけたのは、コールバックなしで JSONP リクエストを送信し、コールバック関数なしで jQuery を介してデータを解析できることです。したがって、JSONP データは JSON データとまったく同じように見えます。
何か不足していますか?データを関数として提供することが JSONP の利点の 1 つである場合、プロセスのある段階でそれが必要になるのではないでしょうか? コールバック パラメータを送信しないことで、ある程度のセキュリティを回避しているのでしょうか?
ありがとう!
参考までに、ここに jQuery AJAX コードがあります。
$.ajax({
type: 'GET',
cache: false,
url: 'http://www.example.com/mobile/menu/devel-gosto.jsonp',
dataType: 'jsonp',
timeout: menuLoadTimeout,
success: function (data) {
menu = populateSlider(data.tree, 0);
}
});
そのため、dataType を 'jsonp' に設定し、JSONP データを返す Web サービスを呼び出しますが、コールバックは URL から除外します。Web サービスは、コールバック ラッパーなしで応答します。そして、すべてがうまくいきます。