1

就在今天,我注意到我的 IE 有一个重大问题。

我有一个循环,每 5 秒接收一次有关系统和用户的各种详细信息,并根据需要更新页面上的值。我只是通过检查 HTML 中的必需值来构建查询,例如:

var query = '?name=value&other=bar';
if($('input.something').attr('checked') == 'checked') {
   query += '&more=info';                      
}  

构建查询后,我使用 $.get 检索信息:

$.get('json_builder.php' + query, function(callback) {
   alert(callback);
});

我的回调是一个 JSON 字符串,我使用$.parseJSON(callback);将其转换为对象;我使用该对象来访问我的数据。

我在除 IE 之外的所有浏览器上收到带有 JSON 回调的警报,在 IE 中我得到“未定义”。

但是,请求通过了,正如在开发人员工具部分中我看到的响应实际上是存在的,但由于某种原因,变量“回调”被保留为“未定义”。

我尝试使用 $.getJSON 而不是 $.get - 结果相同。

4

2 回答 2

3

我遇到了这个问题,但是经过大量试验和错误后,我将我的 php 标头代码从...

header('Content-Type: application/json; charset=utf8');

至...

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

为我解决了。

于 2012-12-30T01:13:00.370 回答
0

我将使用 $.ajax 构建它,如下所示,不确定这是否是您已经尝试过的:

var dataToSend = {'name':'value', 'other':'bar'};
if($('input.something').attr('checked') == 'checked') {
   dataToSend.push({'more':'info'});
}
    $.ajax({
    url:'json_builder.php',
    data:dataToSend,
    success function(callback) {
       alert(callback);
        },
    dataType:'json'
    });
于 2012-08-29T10:04:15.817 回答