#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];
});
}
},
Ответ №1:
Это не проблема, и она контролируется браузером по дизайну.
Это не то, что Axios или любой другой HTTP-клиент решает отправить.
Предварительный запрос-это запрос CORS OPTIONS
, который автоматически отправляется браузерами специально для проверки того, будет ли сервер поддерживать вызов, который вы пытаетесь выполнить, с точки зрения метода, заголовков и источника.
Вы можете безопасно игнорировать запросы, если они не завершатся неудачей, поскольку это означает, что сервер не будет отклонять ваш запрос на основании вышеупомянутых факторов.
Ваша проблема связана с несуществующей конечной точкой, так как вы получаете сообщение об ошибке 404 «Не найдено» — проверьте, существует ли конечная точка или вы правильно ее вызываете.