我做了简单的ajax请求。 代码是这样的。
var paramObject = new Object();
paramObject.cd_nm01 = 'farm';
paramObject.cd_nm02 = 'server';
paramObject.cd_nm03 = 'cpu_num';
paramObject.cd_nm04 = 'mem_size';
paramObject.cd_nm05 = 'user_hdd';
paramObject.cd_nm06 = 'net_sprt';
paramObject.cd_nm07 = 'net_type';
var codes = JSON.stringify(paramObject);
$.ajax({
type: 'POST',
async: false,
cache: true,
dataType: 'json',
beforeSend: function(xhrObj){
xhrObj.setRequestHeader("Content-Type", 'application/x-www-form-urlencoded; charset=UTF-8');
},
url: '/common/getCodes',
data: {
'jParam' : codes
},
success: function(data, status ,xhr) {
console.log(data);
},
error: function(xhr){
}
});
我想发送此数据:"'cd_nm':'farm','cd_nm':'server','cd_nm':'cpu_num','cd_nm':'mem_size','cd_nm':'user_hdd','cd_nm':'net_sprt','cd_nm':'net_type'}"
但在控制器(Spring 3.1)中, 如果我从请求中获取这些值, 他们看起来像下面。
%7B%22cd_nm01%22%3A%22farm%22%2C%22cd_nm02%22%3A%22server%22%2C%22cd_nm03%22%3A%22cpu_num%22%2C%22cd_nm04%22%3A%22mem_size%22%2C%22cd_nm05%22%3A%22user_hdd%22%2C%22cd_nm06%22%3A%22net_sprt%22%2C%22cd_nm07%22%3A%22net_type%22%7D
我该如何解决这个问题?
答案 0 :(得分:0)
您的请求只是网址编码,就像它应该的那样。如果您解码它,它看起来像这样:
{" cd_nm01":"农场"" cd_nm02":"服务器"" cd_nm03":& #34; cpu_num"" cd_nm04":" mem_size"" cd_nm05":" user_hdd"" cd_nm06&# 34;:" net_sprt"" cd_nm07":" net_type"}
对我来说这看起来像是有效的json。您要发送数据的表单看起来不正确。你想使用单引号而你没有领先的括号。如果您不想要01,02,03后缀,则可能需要更改JSON.stringify方法以接受字符串数组而不是对象。