2

也许这似乎是一个非常菜鸟的问题,但我不知道我做错了什么。我想要完成的是一个简单的 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,我得到的是响应标头而不是内容。AJAX 调用在 Firebug 的控制台上也会变红,尽管它显示“200 OK”。我知道我错过了一些东西,但不知道是什么。

4

2 回答 2

2

您是否也在端口 8666 上运行您的网络服务器?从您的代码来看,您的 NodeJS 服务器所做的只是提供一个答案,所以我猜不是。您不能对不同的端口进行 AJAX 调用,即使它是同一主机(在您的情况下为 localhost)。

于 2012-08-19T12:43:29.267 回答
0

由于相同的原产地政策而无法正常工作。

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

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

您可以使用jsonp解决它。

于 2012-08-19T14:41:11.303 回答