私はネイティブフェッチライブラリhereを使用しています。 200 OK以外のレスポンスが返されると、レスポンス文字列Uncaught (in promise) TypeError: Failed to fetch
を含む例外がスローされるようです。200以外の応答をキャプチャするOKフェッチから
特定のHTTP応答コードを捕まえて分岐する方法はありましたが、応答データは表示されますか?たとえば401の応答ですか?
フェッチ用のラッパーとして使用しているリクエストコードが添付されています。
static request(url, data) {
let headers = {
"Authorization": window.localStorage.getItem("Authorization"),
"Content-Type": "application/json"
};
let options = {
method: "GET",
headers: headers,
mode: "no-cors",
cache: "no-cache",
};
if (data) {
options = {
method: "POST",
headers: headers,
mode: "no-cors",
cache: "no-cache",
body: JSON.stringify(data)
}
}
return new Promise(async (resolve, reject) => {
try {
let response = await fetch(url, options);
let jsonResponse = await response.json();
return resolve(jsonResponse);
} catch (error) {
// hashHistory.push("/login");
return reject(error);
}
})
}
を使用することができます。 'request'関数で' fetch'を直接待つことができます。 – Dai
['new promise'に' async関数 'を渡すことは決してありません!](https://stackoverflow.com/questions/43083696/cant-throw-error-from-within-an-async-promise-executor-function/ 43083793#43083793) – Bergi
私はこれが問題の主な原因だと思います!コードレビューありがとう –