gpt4 book ai didi

javascript - AJAX 调用并清理 JSON 但语法错误 : missing ; before statement

转载 作者:IT老高 更新时间:2023-10-28 12:46:40 28 4
gpt4 key购买 nike

我正在使用此代码进行跨域 JSONP 调用:

jQuery.ajax({
async: true,
url: 'http://mnews.hostoi.com/test.json',
dataType: 'jsonp',
method: "GET",
error: function (jqXHR, textStatus, errorThrown) {
console.log(textStatus + ': ' + errorThrown);
},
success: function (data, textStatus, jqXHR) {
if (data.Error || data.Response) {
exists = 0;
}
}
});

在 Firebug 中调试时,出现以下错误:

enter image description here

SyntaxError: missing ; before statement

但是,当我通过 jsonlint.com 之类的工具传递我的 json 对象(可通过 JQ 代码中的链接获得)时,它说它是有效的 JSON。而且我也没有发现任何异常。它怎么会返回语法错误?是我没有得到一些 JSONP 细节还是什么?

JSON 示例

{"news":[ {
"sentences": [
"Neuroscientists have discovered abnormal neural activity...",
"The researchers found that these mice showed many symptoms...",
"\"Therefore,\" the study authors say, \"our findings provide a novel.."
],
"summaryId": "ZJEmY5",
"title": "Abnormal neural activity linked to schizophrenia"
}]}

提前致谢。

最佳答案

JSONP 不是 JSON。 JSONP 响应将由一个 JavaScript 脚本组成,该脚本仅包含一个函数调用(对预定义函数)和一个参数(这是一个符合 JSON 语法的 JavaScript 对象文字)。

您得到的响应是 JSON,而不是 JSONP,因此您将其作为 JSONP 处理的努力失败了。

dataType: 'jsonp' 更改为 dataType: 'json' (或完全删除该行,服务器发出正确的内容类型,因此您不需要覆盖它)。

由于您的脚本在与 JSON 不同的来源上运行,因此您还需要 take steps (大多数,但不是全部,其中需要您控制服务 JSON 的主机)来解决 same origin policy .

关于javascript - AJAX 调用并清理 JSON 但语法错误 : missing ; before statement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19456146/

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