我有一个基于jquery的客户机向我的服务器发出请求。服务器基于Cherrypy(python)
在客户端发送数组的查询中,我的请求url似乎被jquery假定的字符“[]”污染了。例如:
this.setParameters = function(params) {
let reqUrl = this.apiPath() + "setParameters";
let reqParams = {};
let requiredParams = ['sessionKey'];
let optionalParams = ['resolutions', 'dimensions'];
this.fillRequiredParams(reqParams, requiredParams, params);
this.fillOptionalParams(reqParams, optionalParams, params);
console.log('API.setParameters sending these :', reqParams);
$.ajax({
type: "POST",
dataType: 'json',
url: reqUrl,
data:reqParams,
success: function(data, textStatus, request) {
if(typeof params.success === 'function') {
params.success(data);
}
},
error: function(jqXHR, textStatus, errorThrown) {
console.log('setParameters - error', textStatus);
if(typeof params.error === 'function') {
params.error(textStatus, errorThrown);
}
}
});
};
this.fillOptionalParams = function(reqParams, optionalParams, params) {
$.each(optionalParams, function() {
let optParamName = this;
if(params[optParamName] !== undefined) {
reqParams[optParamName] = params[optParamName];
}
});
};
控制台客户端中的结果:
然后,如果我在服务器端记录接收到的内容(这些内容在Cherrypy端点中作为**kwargs接收,因此是dict\u项,但所有内容都由CP本身管理):
SERVER.setParameters : dict_items([('resolutions[]', ['0.00009999999999999999', '0.00009999999999999999']), ('dimensions[]', ['0.0027', '0.0027']))
但是,问题的根本原因必须在客户机上,因为客户机发送的参数名称在每个参数的末尾都包含讨厌的“[]”
我想要的是:
谢谢
目前没有回答
相关问题 更多 >
编程相关推荐