在AJAX调用期间的Node.js响应问题

也许这似乎是一个真正的高手问题,但我不明白我做错了什么。 我想要完成的是一个简单的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我得到的响应标题,但不是内容。 虽然它显示“200 OK”,但Firebug控制台上的AJAX调用也是红色的。 我知道我错过了什么,但不知道是什么。

你是否也在端口8666上运行你的networking服务器? 根据你的代码判断,你所有的NodeJS服务器都提供了一个单一的答案,所以我猜不是。 即使它是相同的主机(在你的情况下是本地主机),你也不能对其他端口进行AJAX调用。

由于相同的来源策略而不工作。

这可能并不明显,但是浏览器也会执行到端口号的策略。

所以http://example.com:80与http://example.com:81不同

你可以用jsonp解决它。