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 によると、応答ヘッダーを取得していますが、コンテンツを取得していないことです。「200 OK」と表示されますが、AJAX 呼び出しも Firebug のコンソールで赤くなります。何かを見逃していることは知っていますが、何がわかりません。

4

2 に答える 2

2

ポート 8666 でも Web サーバーを実行していますか? あなたのコードから判断すると、あなたの NodeJS サーバーは単一の回答を提供するだけなので、そうではないと思います。同じホスト (この場合は localhost) であっても、別のポートに対して AJAX 呼び出しを行うことはできません。

于 2012-08-19T12:43:29.267 に答える
0

同一オリジン ポリシーのため、機能していません。

明らかではないかもしれませんが、ブラウザはポート番号までポリシーを適用します。

したがって、http://example.com:80 はhttp://example.com:81とは異なります

jsonpで回避できます。

于 2012-08-19T14:41:11.303 に答える