也许这似乎是一个真正的noob问题,但我无法弄清楚我做错了什么。我想要完成的是一个简单的AJAX请求。这是我在服务器端的代码:
http.createServer(function(request, response) {
response.writeHead(200, {
"Content-Type": "text/html"
});
response.end("No data to return.");
}).listen(8666);
在客户端,我使用jQuery:
$(document).ready(function() {
$("#magicSend").on("click", function() {
$.ajax({
url: "http://localhost:8666/",
type: "POST"
});
});
});
问题是,根据Firebug我得到的是响应标题但不是内容。在Firebug的控制台上,AJAX调用也会变红,尽管它显示“200 OK”。我知道我错过了什么但却无法弄清楚是什么。
答案 0 :(得分:2)
您是否也在端口8666上运行您的网络服务器?根据您的代码判断,您所有的NodeJS服务器都提供单个答案,所以我猜不是。 您无法对其他端口进行AJAX调用,即使它是相同的主机(在您的情况下为localhost)。
答案 1 :(得分:0)
由于same origin policy而无效。
可能并不明显,但浏览器也会将策略强制执行到端口号。
所以http://example.com:80与http://example.com:81
不同您可以使用jsonp解决问题。