12

我已经设置了 NodeJS,当我浏览到 URL 时它正在返回数据:http: //184.106.206.235

但是,当我尝试使用 调用该 URL 时,会显示变量和变量的$.getJSON回调。nulldata"success"textStatus

我想这可能是一个跨域的事情,但我很惊讶如果是这样的textStatus"success"

如果有帮助,这里是服务器端 JS:

http.createServer(function(req, res){
  var output = {message: "Hello World!"};
  var body = JSON.stringify(output);

  res.writeHead(200, {'Content-Type': 'application/json', 'Content-Length': body.length});
  res.end(body);
}).listen(80, "184.106.206.235");

有任何想法吗?

4

3 回答 3

16

将 "Access-Control-Allow-Origin": "*" 属性添加到您的 writeHead() 调用中:

res.writeHead(200, {
  "Content-Type": "application/json",
  "Access-Control-Allow-Origin": "*"
});
于 2010-08-30T17:06:31.693 回答
3

只是给任何有同样问题的人的注释,上面的解决方案对我有用,只是做了一个小的改动:

“内容类型”:“应用程序/json”

不是“文本/json”。

感谢您的解决方案!这让我快疯了。

于 2010-07-28T16:48:14.283 回答
2

如果您使用的是express框架,您可以尝试以下方法之一:
1.res.contentType('json');设置为内容类型。
2.res.send({ some: 'json' });这将设置内容类型并为您解析。
3.res.json({ user: 'tj' });可能是最好的方法。

希望能帮助到你 :)

于 2012-03-18T22:34:17.627 回答