对IE 9的Ajax调用(成功数据 - 未定义)

时间:2014-06-16 13:36:13

标签: javascript jquery ajax json internet-explorer

当使用ajax调用特定服务时,IE9返回" undefined":

$.ajax({
    url: URL_PATH,
    type: "get",
    success: function(data) {
        console.log(data);
    }
});

在Firefox,Chrome,IE10 +中检查相同的代码,它确实有效。我甚至尝试添加:

contentType: "application/json; charset=utf-8",
datatype: "json",

到ajax调用属性,但没有运气。

奇怪的是,当我调用本地JSON文件时,IE9中的一切都没问题,但是当从本地服务器url(来自数据库的信息)返回时发生错误。看一下响应体,我得到了格式化的json字符串。

更新 还添加了错误捕获块:

error: function(XMLHttpRequest)
    {
        console.log(XMLHttpRequest);
    },

但没有运气,它没有进入错误块,它捕获了成功"

2 个答案:

答案 0 :(得分:3)

我发现了一个问题。我的休息服务的响应标题设置为 charset = UTF8 ,IE无法识别,虽然其他浏览器没有问题,但正确的拼写需要 UTF-8 用短跑:)一个菜鸟的错误。谢谢大家的建议。现在关闭这个帖子。

答案 1 :(得分:-1)

有3种方法可以解决这个问题,

首先添加以下几行

<!--[if lte IE 9]>
<script type='text/javascript' src='//cdnjs.cloudflare.com/ajax/libs/jquery-ajaxtransport-xdomainrequest/1.0.0/jquery.xdomainrequest.min.js'></script>
<![endif]-->

第二个,

使用dataType =&#39; jsonp&#39;解决它在dataType =&#39; json&#39;

的地方