仅限Chrome和IE中的JSON错误:未捕获的语法错误:意外的令牌

时间:2012-10-01 23:19:27

标签: jquery ajax json internet-explorer google-chrome

我试图通过ajax获取一些数据,但由于某种原因,它只在Chrome和IE中的控制台中出错。它在Firefox中运行良好。

这是我的代码:

PHP

function get_data() {
     $data = array( 'value' => '50', 'type' => 'box' );
     echo json_encode($data);
     exit;
}

JS

$(".click").click(function() {
     var data = {
      action: "get_data"
     };

     $.post( "http://domain.com/", data, function(response) {
          var newResponse = $.parseJSON(response);
          console.log(newResponse);
     }); 
});

所以这段代码在Firefox中运行良好,但由于某种原因它在Chrome和IE中无效...在Chrome中,它甚至在出错之前都没有访问console.log函数。

感谢您的光临。

3 个答案:

答案 0 :(得分:1)

我想它应该没有.parseJSON。就像这样,至少它对我有用:

$.ajax({
    url: "url...",
    type: "post",
    data: data,
    success: function (data) {
        if (data.Result) {
            data.value1;
            data.value2;
        } else {
            // do something else
        }
    }
});

数据只是我的类型,如{value1:'123',value2:'345',结果:true}

答案 1 :(得分:0)

您使用的是哪个版本的jQuery?旧版本对返回的JSON文件中的空格不太宽容

答案 2 :(得分:0)

好好经过几个小时的努力来弄清楚什么是错的,我终于发现在ajax网址上存在某种重定向问题。不确定重定向是如何到达的,但是一旦我删除它,一切都开始工作了。顺便说一句,它不影响Firefox只是因为我登录了该网站。我想重定向有一些检查,如果一个人登录,不要重定向ajax网址。

但无论如何,我只是想分享一下,以防其他人遇到与我相同的问题,而代码是正确的,但仍无效。

我还要特别感谢菲利克斯不遗余力地帮助我。