为啥 Axios 会在我的 POST 请求中发送额外的 204 预检请求?
Posted
技术标签:
【中文标题】为啥 Axios 会在我的 POST 请求中发送额外的 204 预检请求?【英文标题】:Why is Axios sending an extra 204 preflight request with my POST request?为什么 Axios 会在我的 POST 请求中发送额外的 204 预检请求? 【发布时间】:2021-11-24 08:20:47 【问题描述】:每当我使用 Vue.js (3.x) 发送 POST
请求时,都会使用 HTTP 状态代码 204 和“预检”类型向同一 URL 发出附加请求。
这是什么预检请求,我该如何解决它,以免它作为重复发送?
Register.vue
async submit()
this.button = true;
try
const response = await axios.post(`register`, this.form);
if(response.data.success == false)
console.log(response.data.message);
else
this.$router.push('/');
catch (error)
let errors = error.response.data;
this.button = false;
this.errors = ;
Object.keys(errors).forEach(element =>
this.errors[element] = errors[element][0];
);
,
【问题讨论】:
【参考方案1】:这不是问题,由浏览器设计控制。
这不是 Axios 或任何其他 HTTP 客户端决定发送的内容。
preflight request 是一个 CORS OPTIONS
请求,由浏览器自动发送,专门用于检查服务器是否支持您尝试根据 method、headers 和 origin 进行的调用。
如果请求没有失败,您可以放心地忽略这些请求,因为这意味着服务器不会基于上述因素拒绝您的请求。
您的问题与端点不存在有关,因为您收到了 404 Not Found error - 检查端点是否存在或者您是否正确调用它。
【讨论】:
以上是关于为啥 Axios 会在我的 POST 请求中发送额外的 204 预检请求?的主要内容,如果未能解决你的问题,请参考以下文章
从Vue js到Laravel的axios.post数组,在我的请求中只得到[object Object]