无法使用Node.js发回.json数据(Cors错误)

我开始学习node.js,但我有一个小问题。 我有一个调用服务器侦听端口8001的ajax函数。我打开并加载.json文件,我想发回到页面。 对于什么关心加载,没有问题,但当我发回到页面,我得到这个错误:在Chrome“POST http:// localhost:8001 / net :: ERR_CONNECTION_REFUSED”; 在Firefox“…原因:CORS请求失败。”

这里是我的简单文件.js的代码:

var http = require('http'), fs = require('fs'), url = require('url'); http.createServer(function (request, response) { var path = url.parse(request.url).pathname; console.log("request recieved"); var obj; fs.readFile('../menu.json', 'utf8', function (err, data) { if (err) throw err; console.log(data); obj = JSON.parse(data); console.log(obj); response.writeHead(200, { "Content-Type": "application/json" }); response.end(obj, "utf-8"); }); }).listen(8001); console.log("server initialized !!"); 

我怎样才能使它工作? 我也读了另一个话题,但是我还没有find解决办法。 提前感谢您的时间和耐心。

编辑:这里是ajax调用:

  function testNodeJs() { var xmlhttp = new XMLHttpRequest(); xmlhttp.open("POST", "http://localhost:8001/", true); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { var string = xmlhttp.responseText; alert(string); } } xmlhttp.send(); }; 

服务器需要发送一个跨源资源共享(CORS)头。 对于你的简单情况,这可能就足够了

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

但是看起来有一个NPM模块也可以帮助您https://www.npmjs.com/package/cors

关于CORS的补充阅读: https : //developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

试试这个:

 response.writeHead(200, { "Content-Type": "application/json", "Access-Control-Allow-Origin": "*" ,"Access-Control-Allow-Methods":"GET, POST","Access-Control-Allow-Headers","X-Requested-With,content-type, Authorization"}); 

有关详情,请通过以下链接查看: https : //annasob.wordpress.com/2012/01/11/getting-around-cors-with-node-js/