当我想要接收json数组时$ .getJSON()返回错误

时间:2014-01-31 13:22:36

标签: javascript php jquery json

我想获得在php文件中回显的Json数组。问题是当我在客户端执行$ .getJSON时出现错误:

SyntaxError: JSON.parse: unexpected character, return window.JSON.parse( data + "" );

代码: PHP:

echo json_encode($responseVar);

Json数组在源代码中可见:{“resp”:0}

JS:

$.getJSON('../views/application.php', function(data) {
    alert('alert1');
    if(data) {
        document.write(data.resp);
        alert('alert2');
    }
    else {
        alert('error');
    }
})
.fail(function(j,t,e) {
    console.error(e);
 });

我没有得到任何警报,我只是得到了所描述的错误。

2 个答案:

答案 0 :(得分:0)

尝试将其放入函数中:

function getJsonArray()
    {
    var URL="/URL";
    $.ajax(
        {
        type        : "GET",
        url         : processURL,
        cache       : false,
        dataType    : "json",
        success     : function (Put the array name here) 
            {Do Something with the array    }};

答案 1 :(得分:0)

多种原因:

  • BOM编码:在文本编辑器中关闭BOM(不带BOM的UTF-8编码)。 BOM是UTF8文件开头的系统(不可见)符号。

  • jQuery 1.4以后严格解析JSON数据。任何格式错误的JSON都会被拒绝,并抛出一个解析错误。正确设置标题:

      

    header('Cache-Control:no-cache,must-revalidate');

         

    header('Expires:Mon,26 Jul 1997 05:00:00 GMT');

         

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

  • 来自服务器的错误状态代码。