ログインフォームを作成しようとしています。 Postmanでサービスをテストしているときに、ステータスコードなどを含むbodyオブジェクトを取得します。
しかし、JavaScriptフェッチではbodyオブジェクトを取得できず、エラーを受け取りました。
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())
});
}
}
フェッチでステータスコードを取得する必要があります。
status
はresponse
オブジェクトに存在します。あなたはそれをあなたの最初の中に入れてからブロックすることができます
_.then(function (response) {
console.log(response.status);
return response.json();
})
_
response.json()
を返すので、後続のthen
およびcatch
は、応答の本体であるresponse.json()
の結果のみを取得します。