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

Вернуться на верх