NodeJS不会将数据返回给jQuery.getJSON

时间:2010-07-20 22:55:37

标签: jquery node.js getjson

我设置了NodeJS,并在浏览到网址时返回数据:http://184.106.206.235

但是,当我尝试使用$.getJSON来调用该网址时,回调会显示null变量的data"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");

有什么想法吗?

3 个答案:

答案 0 :(得分:16)

将“Access-Control-Allow-Origin”:“*”属性添加到writeHead()调用中:

res.writeHead(200, {
  "Content-Type": "application/json",
  "Access-Control-Allow-Origin": "*"
});

答案 1 :(得分:3)

对于任何遇到相同问题的人来说,上面的解决方案只为我提供了一个小改动:

“Content-Type”:“application / json”

不是“text / json”。

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

答案 2 :(得分:2)

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

希望它有所帮助:)