我正在使用fetch查询我的WordPress REST API端点。但是,每个使用fetch发出的请求都以302状态码的无限循环结束,直到fetch最终因TOO_MANY_REDIRECTS错误而失败。
这是在Chrome 56上使用本地fetch。但是当我使用浏览器访问端点,使用XHR或Postman时,我总是得到状态码200。
另一方面,XHR... 与此问题相关的代码:
请注意,我的代码中实际上没有两个连续的返回语句,这只是为了演示。我正在使用
那么我该怎么解决呢?我知道fetch仍然是“实验性的”,但我已经在几个已经发布的项目中使用它,通过打包一个polyfill来支持尚未支持它的浏览器。这是一个新的东西。
另一方面,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',
});
}
请注意,我的代码中实际上没有两个连续的返回语句,这只是为了演示。我正在使用
request()
作为XHR的包装器,您可以在此处找到其源代码。那么我该怎么解决呢?我知道fetch仍然是“实验性的”,但我已经在几个已经发布的项目中使用它,通过打包一个polyfill来支持尚未支持它的浏览器。这是一个新的东西。
/wp-json
或者/wp-json/
得到的结果是一样的。 - Christian