リモートサーバーへの多数の ajax 呼び出しがあり、それらを広範囲に使用するアプリケーションを作成しています。コードはすべての呼び出しでほぼ同じなので、再利用できる新しい関数を作成したいと考えています。「データ」パラメーターのパラメーター構造を定義する際に私は頭を悩ませました。私の問題を以下に説明します。
現在の ajax 呼び出しのサンプルを以下に示します。
現在の通話サンプル:
$.ajax({
beforeSend: function() {
$.mobile.loading('show');
},
complete: function() {
$.mobile.loading('hide');
},
type: 'GET',
url: 'http://localhost/test-url/',
crossDomain: true,
data: {appkey: '1234567', action: 'action1','name':'me'},
dataType: 'jsonp',
contentType: "application/javascript",
jsonp: 'callback',
jsonpCallback: 'mycallback',
async: false,
error: function() {
//some operations
},
success: function(data) {
//some operations
}
});
私が作成した再利用可能な関数:
function newAjax(parm, successCallback, errorCallback) {
$.ajax({
beforeSend: function() {
$.mobile.loading('show');
},
complete: function() {
$.mobile.loading('hide');
},
type: 'GET',
url: 'http://localhost/test-url',
crossDomain: true,
data: {appkey: '1234567', parm: parm},
dataType: 'jsonp',
contentType: "application/javascript",
jsonp: 'callback',
jsonpCallback: 'mycallback',
async: false,
success: function() {
successCallback();
},
error: function() {
errorCallback();
}
});
}
質問:
「parm」パラメーターを介して ajax 呼び出しのパラメーターを渡します。データ値を親の「データ」パラメーターに直接追加したい。データのサブオブジェクトとしてではありません。appKey はすべての呼び出しで同じままなので、実際の関数に保持します。
成功とエラーの両方のコールバック関数をオプションにしたい。提供されていない場合は、無視する必要があります。