Почему Axios отправляет дополнительный запрос на 204 рейса с моим запросом POST?

#vue.js #post #axios #cors #preflight

Вопрос:

Всякий раз, когда я отправляю POST запрос с помощью Vue.js (3.x), выполняется дополнительный запрос на тот же 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];
        });
    }
},
 

вкладка сеть, отображающая 204 предполетных запроса с 404 XHR запросом на регистрацию конечной точки

Ответ №1:

Это не проблема, и она контролируется браузером по дизайну.

Это не то, что Axios или любой другой HTTP-клиент решает отправить.

Предварительный запрос-это запрос CORS OPTIONS , который автоматически отправляется браузерами специально для проверки того, будет ли сервер поддерживать вызов, который вы пытаетесь выполнить, с точки зрения метода, заголовков и источника.

Вы можете безопасно игнорировать запросы, если они не завершатся неудачей, поскольку это означает, что сервер не будет отклонять ваш запрос на основании вышеупомянутых факторов.

Ваша проблема связана с несуществующей конечной точкой, так как вы получаете сообщение об ошибке 404 «Не найдено» — проверьте, существует ли конечная точка или вы правильно ее вызываете.