我使用React.js创建了一个Web应用程序,并通过Axios调用后端。
然而,在等待服务器的响应时,Firefox一直给我一个网络错误。 Chrome,Safari,Opera等其他浏览器工作正常。
请求代码:
export function postLoginDetails(username, password, token) {
const url = ENV.host + "/login";
return axios({
method: 'post',
url: url,
withCredentials: true,
headers: {
"X-CSRFToken": token
},
data: {
username: username,
password: password,
},
responseType: 'json'
}).catch(e => console.log(e))
}
发生错误的代码:res未定义。
postLoginDetails(username, password, this.token).then((res) => {
if (res.data.success) {
this.isAuthenticated.set(true)
cb();
} else {
this.error.set(true);
this.errorText = observable('Fehler aufgetreten');
this.name = observable('');
}
this.loginLoading.set(false);
})
答案 0 :(得分:1)
对于其他遇到此问题的人,我无法谈谈飞行前选项的内容,但是我确实知道firefox正在告诉axios终止请求。如果您查看axios处理错误的部分,则会看到注释:
// Handle browser request cancellation (as opposed to a manual cancellation)
因此,这是某种浏览器怪癖。我不是使用按钮来触发请求,而是使用锚标记<a>
。当我将其更改为<span>
时,它开始工作。为什么,Firefox?