为什么 Axios 在我的 POST 请求中发送额外的 204 预检请求?

Why is Axios sending an extra 204 preflight request with my POST request?

每当我使用 Vue.js (3.x) 发送一个 POST 请求时,会向同一个 URL 发送一个额外的请求,HTTP 状态代码为 204 & 类型“预检”。

什么是预检请求,我该如何修复它以免重复发送?

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];
        });
    }
},

这不是问题,由浏览器设计控制。

这不是 Axios 或任何其他 HTTP 客户端决定发送的内容。

一个preflight request is a CORS OPTIONS request & are automatically sent by browsers specifically to check if the server would support the call you are trying to make in terms of method, headers and origin.

如果请求没有失败,您可以安全地忽略这些请求,因为这意味着服务器不会基于上述因素拒绝您的请求。

您的问题与端点不存在有关,因为您正在获取 404 Not Found error - 检查端点是否存在或者您是否正确调用它。