1

尝试使用 Ajax 和仅在 Internet Explorer 上获取 JSON 数据时遇到问题。

我正在使用这个 jQuery 代码:

$.ajax({
    type: "GET",
    url: "./ajaxglobal/chargementcommandes", 
    cache: false,
    dataType: "json",
    contentType: "application/json",
    success: function(data) {
        alert("Success : "+data);
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
        alert("Error : "+textStatus+" / "+errorThrown);
    }
});

“chargementcommandes”是一个 PHP/Zend 页面。

为测试而简化的“chargementcommandes”的 PHP 代码如下:

echo '[
        { "data" : "A node", "children" : [ { "data" : "Only child", "state" : "closed" } ], "state" : "open" },
        "Ajax node"
]';

在 Firefox 和 Chrome 中一切正常(我得到了预期的数据),但在 Internet Explorer 中(在 IE8 和 IE9 中测试),我从警报中得到“成功:未定义”。所以 Ajax 调用不会返回任何内容。我尝试了很多东西,但我没有成功摆脱这个问题。

任何帮助将不胜感激。提前致谢 !

编辑:在 jQuery 代码中添加了类型、缓存和内容类型。仍然是“成功:未定义”响应...

4

1 回答 1

0

正如raina77ow 所建议的那样,对于json 响应,确保标头是正确的。

json 的正确标头是“application/json”,此标头设置如下:

header('Content-type: application/json');

于 2012-10-15T16:47:37.700 回答