验证JSON时出现getJSON解析错误

时间:2013-09-27 03:00:07

标签: javascript php jquery json getjson

我正在尝试使用一些JSON和JS,它由我控制的PHP脚本输出。输出在http://jsonlint.com/处验证正常,但是当我尝试将其与$ .getJSON一起使用时,它会返回一个解析错误:

这是非描述性错误:Uncaught SyntaxError: Unexpected token :

这是JSON的来源:http://novaramedia.com/api/txt/

这是我的jQuery:

$.getJSON('http://novaramedia.com/api/txt/?callback=?', function(data) {

    console.log(data);

}).error(function(jqXHR, textStatus, errorThrown) {

    console.log(textStatus);
    console.log(errorThrown);

});

errorThrown变量记录为:Error {}

JSON以非常正常的基本方式输出,PHP数组输入到json_encode。以下是脚本的输出行:

header("Content-type: application/json");
die(json_encode($output));

PHP脚本与用于另一个JSON端点[http://novaramedia.com/api/fm/]的脚本几乎完全相同,getJSON没有问题。唯一真正的区别是“内容”的价值,它直接来自wordpress帖子内容。

非常令人沮丧的问题所以任何帮助都非常感激:}

1 个答案:

答案 0 :(得分:2)

对于JSONP,您需要预先设置回调函数。

示例:

jQuery({...})

http://novaramedia.com/api/txt/?callback=jQuery等端点应返回jQuery( ... json output ... )之间的响应。

扩展:

您可以使用header('Access-Control-Allow-Origin: \'http://remote-site.com\'');,然后从其他域免费访问您的数据。

优点是其他人不能使用jsonp,但也许这是你的意图。