我的问题是当我使用jQuery ajax get时,我在响应主体获取数据但是它没有传递给成功函数。我怎样才能使它发挥作用?
我正在制作一个ajax,但它在ie9上不起作用(适用于其他浏览器)所以我改变了它只是为了测试:
$.ajax({
async : false,
type: 'PUT',
contentType: 'application/json',
url:updateUrl + "?_" + new Date().getTime(),
data: JSON.stringify(model),
cache: false,
dataType: "json",
dataFilter: function(data) {
var resp = eval('(' + data + ')');
return resp;
},
success: function(data, status, xhr) {
alert("success> " + data.property);
alert(typeof data);
r = resultResponse(data);
},
error: function(data, status, xhr) {
alert("error> " + data.responseText);
try {
r = error($.parseJSON(data.responseText));
} catch (err) {
//Handle error
}
}
});
数据警告未定义。我的put数据发送正确,我的服务器端运行良好并向客户端发送响应但是我得到了undefined而不是数据。经过一些测试,我意识到了这个问题:
当我捕获网络通信包时,即9响应体是我想要的。但是成功功能无法处理它。如果需要,我可以提供有关我的服务器的更多信息(当我将数据写入响应而不是在Java上使用jackson json mapper时,我可以使它工作 - 它正在工作,唯一的区别是没有包含ta工作版本在响应标题: 核心价值 Content-Type application / json; charset = UTF8)
我认为问题可以在客户端处理,我认为不在服务器端。 有什么想法吗?
编辑:我尝试过那种风格:
$.ajax({url: "/url",
dataType: "text",
success: function(text) {
json = eval("(" + text + ")");
// do something with JSON
}
});
但是响应标题仍然是:
关键价值 Content-Type application / json; charset = UTF8
答案 0 :(得分:0)
问题是错误的charset。它是UTF(而不是UTF-8)。