使用来自PHP + Zend的Ajax获取JSON数据仅在IE中不起作用

时间:2012-10-15 16:32:33

标签: php jquery ajax json internet-explorer

尝试使用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中测试过)中,我从警报中得到“Success:undefined”。所以Ajax调用不会返回任何内容。我尝试了很多东西,但我没有成功摆脱这个问题。

非常感谢任何帮助。 提前谢谢!

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

1 个答案:

答案 0 :(得分:0)

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

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

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