Jquery Ajax在Internet Explorer中不起作用

当我在Internet Explorer 9上使用jQuery ajax时,我在响应主体处获取数据但是它没有传递给成功函数。 我怎样才能使它工作?

例:

... $.ajax({ async : false, type: 'PUT', contentType: 'application/json', url: updateUrl, data: JSON.stringify(model), dataType: 'json', success: function(data) { console.log("Here!");//it comes here console.log(data);//it logs undefine at ie, firefox and etc is logging data r = resultResponse(data); }, error: function(data) { try { r = error($.parseJSON(data.responseText)); } catch (err) { //Handle error } } }); ... 

我调试了网络,看到响应正文是:

 {"message":"Connection is successful","status":"success"} 

但是,Internet Explorer的成功function未定义数据。

有任何想法吗?

PS 1:奇怪的是,当我从服务器发送数据而没有设置响应头的内容类型时,它有效吗?

PS 2:我的回复标题如下:

 Key Value Response HTTP/1.1 200 OK Server Apache-Coyote/1.1 Content-Type application/json;charset=UTF8 Transfer-Encoding chunked Date Thu, 02 Aug 2012 15:50:44 GMT 

从输出中可以看出,我的字符集是UTF8而不是UTF-8。 问题是在服务器端。

这可能有很多要问,但是你可以尝试将完整的$.ajax调用替换为$.getJSON吗? 浏览器执行起来会更加简单和容易,因为您的问题可能出在为ajax调用所做的众多设置和配置中。

保持尽可能简单:

 $.getJSON(updateUrl, JSON.stringify(model), function(data){ console.log(data); }); 

如果您需要查看getJSON,请点击此处