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,请点击此处