我正在使用ajax和节点js第一次。当我使用客户端从节点js获取响应时,它将进入错误功能。另一方面,当我直接从浏览器调用url时,我从服务器得到正确的响应。这表明客户端ajax请求有问题。没有得到来自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.
请人帮忙解决这个问题了。我一直在这一天。
编辑:网络选项卡的屏幕截图。正如你可以看到服务器获取请求,但客户端没有得到响应。即使在写入'Access-Control-Allow-Origin'之后,也会完成:'*'。
您在* browser *控制台中获得输出吗?听起来像是一个跨域问题。 – Dave
http://stackoverflow.com/a/9523871/1180785 – Dave
@Dave:我看到这条消息(编辑后),然后弹出警告消息。然后页面自动重新加载。 –