Axios отправляет OPTIONS вместо POST в Django
Я использую Django Rest Framework с фронтендом на Vue. Я использую axios для выполнения POST запросов к Django, но сервер Django получает OPTIONS запросы, как вы можете видеть в журнале сервера.
"OPTIONS /save/ HTTP/1.1" 200 0
Broken pipe from ('127.0.0.1', 59396)
Похоже, что проблема не в сервере, поскольку CORS настроен правильно, и я могу отправить POST-запрос с помощью Postman. Вот код javascript
async save() {
let data = {
"name": this.name,
"title": this.title,
}
let config = {
header : {
"Content-Type": "application/json",
}
}
response = await axios.post(
'http://127.0.0.1:8000/save/',
data,
config
)
}
попробуйте с headers
вместо header
в config
Браузер всегда будет отправлять запрос OPTIONS
, если бэкэнд находится на другом домене. Возможно, стоит проверить вашу конфигурацию CORS, чтобы убедиться, что она успешно обрабатывает запрос OPTIONS
и возвращает правильный ответ. Только после того, как запрос OPTIONS
вернет ответ 200
, браузер отправит ваш запрос POST
. Более подробно см. эту замечательную статью о CORS: https://codeburst.io/cors-story-of-requesting-twice-85219da7172d