0

我正在尝试将一些 JSON 与由我控制的 PHP 脚本输出的 JS 一起使用。输出在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 帖子内容的 HTML。

非常令人沮丧的问题,因此非常感谢您的帮助:}

4

1 回答 1

2

对于 JSONP,您需要预先添加一个回调函数。

例子:

jQuery({...})

端点http://novaramedia.com/api/txt/?callback=jQuery应该在jQuery( ... json output ... ).

扩大:

您可以使用header('Access-Control-Allow-Origin: \'http://remote-site.com\'');然后从另一个域自由访问您的数据。

优点是其他人将无法在其上使用 jsonp,但也许这就是您的初衷。

于 2013-09-27T03:40:38.737 回答