我设置了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");
有什么想法吗?
答案 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' });
可能是最好的方法。
希望它有所帮助:)