fetchを使用して、自分自身のWordPress REST APIエンドポイントに問い合わせています。しかし、フェッチで行うすべてのリクエストは、TOO_MANY_REDIRECTSで最後にエラーを取得するまで、302個のステータスコードの無限ループで終わります。フェッチは302のステータスコードを返しますが、XHRは返されません。
これはネイティブフェッチ使用して、クロム56です。しかし、私がブラウザを使ってエンドポイントにアクセスしたとき、XHRまたはPostmanを使用すると、私は常にステータスとして200を取得します。
一方、XHR ...
この問題に関連するコード:
static checkStatus(email = null) {
const cookie = Cookies.get('cookiename');
const data = email || cookie;
if (!cookie && !email) {
return Promise.reject(new Error('No data given.'));
}
// This works.
return new Promise((resolve, reject) => {
request({
url: `/wp-json/woo/donate/status/?email=${data}`,
method: 'GET',
success: (response) => {
resolve(response);
},
error: (error) => {
reject(error);
}
})
});
// This doesn't.
return fetch(`/wp-json/woo/donate/status/?email=${data}`, {
method: 'GET',
});
}
、私は実際に私のコードでは二つの連続return文を持っていないことに注意してくださいそれはデモ用です。私はXHRへのラッパーとしてrequest()
を使用しています、あなたはsource for that hereを見つけることができます。
どうすればこの問題を回避できますか?フェッチはまだ「実験的」であることはわかっていますが、まだサポートしていないブラウザにpolyfillをバンドルすることで、すでに出荷されたいくつかのプロジェクトで使用しています。これは新しいものです。
誰かが尋ねる前に、私が '/ wp-json'の代わりに'/wp-json/'を使うと同じ結果になります。 – Christian