没有得到来自Ajax的响应,进入错误的function

我正在第一次使用ajax和node js。 当我使用客户端从节点js获得响应时,它将进入错误function。 另一方面,当我直接从浏览器调用url时,我从服务器得到正确的响应。 这表明客户端的ajax请求出了问题。

这是我的客户代码:

function fetch() { $.ajax({ type: 'POST', url: "http://127.0.0.1:8888", data: {data : 'India'}, dataType: 'json', success: function () { alert("hi"); //var ret = jQuery.parseJSON(data); //$('#q').html(ret.msg); }, error: function (jqXHR, textStatus, error) { console.log('Error: ' + error.message); alert("ERROR"); } }); 

这是服务器node.js代码(它的一部分)。 console.log msg获取正确的值。

 http.createServer(function(req, response) { console.log("Request received"); response.writeHeader(200, {"Content-Type": "application/json"}); req.on('data', function (chunk) { console.log(chunk.toString('utf8')); console.log(result[0].name); }); response.end(JSON.stringify({data:result})); }).listen(8888); 

服务器中的所有console.log都可以获得正确的值。 这意味着当有一个jax请求时,响应没有回到,但直接写127.0.0.1:8888,我得到正确的响应。

控制台上的消息是:

 XMLHttpRequest cannot load http://127.0.0.1:8888/. Origin null is not allowed by Access-Control-Allow-Origin. 

请有人帮助解决这个问题。 我已经在这一天了。

编辑:networking选项卡的屏幕捕获。 正如你所看到的服务器获取请求,但客户端没有得到响应。 甚至在写入“Access-Control-Allow-Origin”之后,也是这样:“*”。 在这里输入图像说明

这是同源政策 。 您需要提供通过HTTP托pipeJavaScript的HTML文档(除非您使用的CORS来自与您使用Ajax请求的资源相同的主机名和端口)。