有效 JSON 文档中的语法错误

Posted

技术标签:

【中文标题】有效 JSON 文档中的语法错误【英文标题】:Syntax error in a valid JSON document 【发布时间】:2013-08-26 13:46:07 【问题描述】:

我正在使用 Node js,这就是我构建响应的方式:

response.writeHead(200, "Content-Type": "script");
response.write(JSON.stringify("test":"fail"));
response.end();

客户端发出 jsonp 请求,在 Chrome 中和在 Safari 中一样,我收到此错误:

Resource interpreted as Script but transferred with MIME type text/plain.
SyntaxError: Unexpected token ':'

浏览器允许访问它收到的响应:

"test":"fail"

语法错误从何而来?

【问题讨论】:

【参考方案1】:

客户端正在尝试执行Script 资源(它被解释为Script,而不是JSON)。 "test":fail" 是无效的 javascript -- 尝试在控制台中运行它。

jsonp 需要一个通常由客户端请求的回调,以便它可以正常运行。您实际上应该执行以下操作:

response.write(request.query.callback + "(" + JSON.stringify(json) + ")");

这将被发出

callback12345("test":"fail")

这是有效的 JavaScript 并且会正常运行。

【讨论】:

以上是关于有效 JSON 文档中的语法错误的主要内容,如果未能解决你的问题,请参考以下文章

“模板语法错误:过滤器无效:”;基于 django 文档的自定义 django 模板过滤器损坏,但模板标签有效

未捕获的语法错误意外令牌 U JSON

处理来自 API 的 JSON 中的语法错误

Atom 中的 Eslint 在有效的 JSX 语法上出错

尝试将 json 导入 mongodb 云集合时出现语法错误

错误:您的 SQL 语法有错误 - 但 SQL 语句有效