$.ajax json数据的字符集编码
我提出了一个简单的ajax请求。 代码是这样的$.ajax json数据的字符集编码,ajax,json,encoding,Ajax,Json,Encoding,我提出了一个简单的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'; paramOb
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
如何解决这个问题?您的请求只是url编码的,就像它应该的那样。如果您解码它,它看起来像这样: {“cd_nm01”:“farm”、“cd_nm02”:“server”、“cd_nm03”:“cpu_num”、“cd_nm04”:“mem_size”、“cd_nm05”:“user_hdd”、“cd_nm06”:“net_sprt”、“cd_nm07”:“net_type”}
对我来说,这看起来像是有效的json。要发送数据的表单看起来不正确。您希望使用单引号,但没有前导括号。如果不想使用01、02、03后缀,可能需要更改JSON.stringify方法以接受字符串数组而不是对象。谢谢您的回答。我会尽量利用你的建议来解决这些问题。