有没有办法在fetch.Response重定向后重新发布我的formData?
我的第一个请求(我发送我的帖子数据)得到301代码,这没关系 - 但如果下一个(或下一个)响应是useFinalURL,我怎样才能重新发送我的后请求?
示例:
fetch(url, {
method: 'post',
body: formData,
redirect: 'follow'
})
.then(function(response) {
if (response.useFinalURL === true){ resendFetchPost }
})
希望有人可以给我一个提示
答案 0 :(得分:1)
当您想基于条件检查重做某些内容时,最简单的解决方案通常是递归函数:
const autoPost = (url, formData) => {
return fetch(url, {
method: 'POST',
body: formData,
redirect: 'follow'
}).then(resp => {
return resp.useFinalURL ?
autoPost(resp.url, formData) : // resend to final url
resp.text(); // could sub resp.json() as approp.
});
};
添加了奖励,因为fetch
是异步的,你不会得到无限的递归错误或无休止地阻塞。