【问题标题】:Syntax error in a valid JSON document有效 JSON 文档中的语法错误
【发布时间】: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"}

语法错误从何而来?

【问题讨论】:

    标签: json node.js google-chrome safari jsonp


    【解决方案1】:

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

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

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

    这将被发出

    callback12345({"test":"fail"})
    

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

    【讨论】:

      猜你喜欢
      • 2016-10-02
      • 2013-08-19
      • 2015-02-27
      • 2013-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多