web-dev-qa-db-ja.com

JavaScriptフェッチで応答ステータスコードを取得できません

ログインフォームを作成しようとしています。 Postmanでサービスをテストしているときに、ステータスコードなどを含むbodyオブジェクトを取得します。

Postman Result

しかし、JavaScriptフェッチではbodyオブジェクトを取得できず、エラーを受け取りました。

fetch console log

export const login = (username,password) => {
    return dispatch=>{
        const basicAuth = 'Basic ' + btoa(username + ':' + password);
        let myHeaders = new Headers();
            myHeaders.append('Authorization', basicAuth);
            myHeaders.append('Content-Type', 'application/json');      
            fetch(`${baseUrl}api/user/login`, {
                withCredentials: true,
                headers: myHeaders
            })
            .then(function (response) {
                return response.json();
            })
            .then(function (json) {
                dispatch(setLoginInfo(json))
            })
            .catch(err =>{
                console.log(err)
                 dispatch(loginFailed())
            });
    }

}

フェッチでステータスコードを取得する必要があります。

5
ali mottaghian

statusresponseオブジェクトに存在します。あなたはそれをあなたの最初の中に入れてからブロックすることができます

_.then(function (response) {
    console.log(response.status);
    return response.json();
})
_

response.json()を返すので、後続のthenおよびcatchは、応答の本体であるresponse.json()の結果のみを取得します。

0
Panther