2017-08-28 12 views
1

私は最近、javascriptのフェッチライブラリを使用して、必要なPOST/GET呼び出しをいくつか実行し始めました。fetch(javascript)のレスポンスブロックに到達できません

これは私が認証トークンを要求しようとしています私の現在のコードです:私は、エラーコード400で応答をもたらす空の文字列を送信する際

var request = { 
    method: "POST", 
    headers: { 
    "Content-Type": "application/json", 
    "Accept": "application/json" 
    }, 
    body: JSON.stringify({ 
    username: username, 
    password: password, 
    }) 
} 
fetch('http://127.0.0.1:8000/api/login/', request) 
.then(function(response) { 
    if (response.ok) { 
    console.log("SUCCESS"); 
    } else { 
    console.log("FAIL"); 
    } 
}); 

十分に興味深い、私が期待されますコンソールでFAILを実行します。正しい認証の詳細を正常に送信すると、問題が発生します。その場合、SUCCESSを印刷する必要がありますが、コンソールに何も表示されません。サーバー自体では、200の応答でPOST要求が行われ、認証がOKであることが示されています。

私はここで間違っていますか?

答えて

2

レスポンスヘッダーが応答にという応答ヘッダーを送信していない場合、またはヘッダーの値がフロントエンドJavaScriptコードの実行元と一致しない場合は、ブラウザがフロントエンドをブロックしていますコードが応答にアクセスしないようにします。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORSです。

これが起こっている場合、ブラウザはブラウザのdevtoolsコンソールにエラーメッセージを記録して、何が起こっているのかを知らせる必要があります。

関連する問題