gpt4 book ai didi

javascript - 获取 json 意外 token

转载 作者:行者123 更新时间:2023-11-29 21:59:06 26 4
gpt4 key购买 nike

我正在尝试使用 JSONP 获取 JSON 文件:

function getJson() {
var url = 'http://www.oref.org.il/WarningMessages/alerts.json?callback=?';
$.getJSON(url, function(data) {
checkJson(data);
});
setTimeout(arguments.callee, 2000);
}
getJson();

问题是我收到这个错误:

Uncaught SyntaxError: Unexpected token :

所以我在网上搜索,发现的解决方案很少,但没有一个有效。

我尝试改用 Ajax,并尝试将 $.getJSON 替换为 $.parseJSON 但出现此错误:

Uncaught SyntaxError: Unexpected token h 

JSON 文件:

{
“编号”:“1406032249536”,
“标题”:“测试”,
“数据” : []
}

最佳答案

因为您的 URL 中有一个 callback=?,所以您正在发出 JSONP 请求。

JSONP 请求的响应必须是 JavaScript 应用程序。它应该包含一个函数调用(对由(用 PHP 术语)$_GET['callback'] 定义的函数)和一个参数(您要求的数据)。

您正在返回 JSON,因此您尝试连接的服务不支持 JSONP(至少不支持标准的 callback 参数——查阅他们的文档可能会给您一个不同的参数来使用).


您可以创建一个标准的 XMLHttpRequest(通过取出 callback=?),但是您说(在评论中)这会让您对 Access-Control-Allow-Origin 提出投诉 未授予您的网站访问权限。


如果您控制 JSON 端点,则可以更改它以使其支持 JSONP 或 CORS(它提供了 Access-Control-Allow-Origin)。听起来您并不控制该端点,所以这不是一个选项。


这给您留下了一个选择:使用代理。

向您自己的服务器发出 Ajax 请求。让在您的服务器上运行的服务器端程序向 JSON 端点发出请求并返回数据。

您也可以考虑使用第三方代理,例如 YQL,但这可能会受到您在对该问题的另一条评论中提到的地理限制的影响。

关于javascript - 获取 json 意外 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24884416/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com