2017-06-18 2 views
0

私のAjaxリクエストが適切なレスポンスを受信して​​いません!応答ステータス '0'のreadyState '4'を入力しますか?node.jsからAjaxレスポンスが届かない

クライアントコード:

var xhttp = new XMLHttpRequest(); 
xhttp.onreadystatechange = function(){ 
        if(xhttp.readyState == 4 && xhttp.status == 200){ 
         document.getElementById("lastNameLabel").innerHTML = "response recieved!"; 
         const responseJSON = JSON.parse(xhttp.responseText); 
         if(responseJSON.emailTaken == "false"){ 
          window.location = server+"/client/home.html"; 
         } 
        } 
       }; 
xhttp.open("POST", server+"/signUp", true); 
xhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
xhttp.send("email="+email); 

サーバーコード(Node.jsの+エクスプレス):

app.post('/signUp', (req, res) => { 
    res.end("it worked!!"); 
}); 

私は、URLの呼び出しを参照してくださいので、私は私のサーバがリクエストを処理している知っているが、応答は決してhtmlクライアントに達する!!私はスーパースタックです!

+0

クロスオリジンリクエストですか?ブラウザの開発者ツールコンソールで、corsに関するエラーがあるかどうか確認してください。 –

+0

どういう意味ですか? –

+0

これは、ブラウザ**の開発者**のツールコンソールでエラーをチェックすることを意味します。 –

答えて

0

を置く@ jaromanda-Xのsuggestion答えとして、あなたがCORSを有効にする必要があり、ステータスコードと理由フレーズを含みHTTP応答メッセージを使用してNodeJSサーバ応答を持っている必要がありますあなたのサーバー。

これはどのように行うのです:詳細情報については

var cors = require('cors'); 

app.use(cors()); 

、それについてthis express docを参照してください。

-1

次のような

res.status(200).send({ status: 'ok' }); 
+0

これは問題とは無関係で、 '200'はすでにデフォルトのステータスコードなので、それを追加する必要もありません。 – jfriend00

関連する問題