如果你想在一個對象標籤是基於其他一些變量,你可以用
var paramLabels = {"session": "sessionToken", "type": "exportType", ...}
var paramValues = {};
paramValues[paramLabels.session] = sessionToken;
paramValues[paramLabels.type] = "xls"
...
$.post(/"abc/export.action", paramValues, function(resdata) { alert(resdata);});
做,我實在看不出這種做法的好處期望當後端像開發商每五分鐘更改參數的名稱。
處理這將是創建一個工廠方法或生成器
function createParams(session, type, ...) {
return { "sessionToken": session, "exportType": type, ...) }
}
var params = createParams(sessionToken, "xls", ...);
或
var Parameters = function() {
this.session = function(session) { this.session = session; return this;}
this.type = function(type) { this.type = type; return this;}
...
this.build = function() {
var params = {}
!this.session || params.sessionToken = this.session;
!this.type || params.exportType = this.type;
...
return params;
}
}
var params = new Parameters().session(sessionToken).type("xls")...build();
這兩種方法讓你定義的參數concreate名只有一次的另一種方式。當需要不同的參數集時,後者可能更容易重用。
如果您有一個包含要發送的所有數據的對象,爲什麼不將該對象用作'$ .post()'的第二個參數? '$。員額( '/ ABC/export.action',dataobj,功能(resdata){警報(resdata);});'我怕我不完全理解什麼是你的問題。 – duri
@duri:我編輯我的問題解釋得 – abi1964
@Abhishek - 如果你想在'$。員額的全部(或大部分)情況下使用相同的參數()'只是做杜裏說,還是看我的答案。 – nnnnnn