Код состояния 415, хотя заголовки кажутся правильными - PullRequest
0 голосов
/ 14 января 2020

У меня есть вызов API в моем внешнем приложении, которое использует Ax ios для выполнения запроса PUT. Это работает от почтальона, но в браузере я получаю ошибку 415. Вот заголовки браузера:

Общие
URL-адрес запроса: api.example.com/foo
Метод запроса: ОПЦИИ
Код состояния: 415 Неподдерживаемый тип носителя
Удаленный адрес: IP-адрес: 443
Политика реферера: no-referer-when-downgrade

Заголовки ответа
Access-Control-Allow-Headers: content- type
Access-Control-Allow-Methods: GET, PUT, POST, DELETE, HEAD, OPTIONS
Access-Control-Allow-Origin: *
Длина содержимого: 175
Тип содержимого: применение / проблема + JSON; charset = utf-8
Дата: понедельник, 13 января 2020 года 20:03:06 GMT
Контекст запроса: appId = guid
Сервер: Microsoft-IIS / 10.0
Strict-Transport-Security: max-age = 2592000
X-Powered-By: ASP. NET

Заголовки запроса
Accept: * / *
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US, en; q = 0,9
Access-Control-Request-Headers: content-type
Access-Control-Request-Method: PUT
Cache-Control: без кеша
Соединение: keep-alive
Хост: api.example.com
Источник: http://localhost: 3000
Прагма: без кеша
Реферер: http://localhost: 3000 / добавочный
Se c -Fetch-Mode: cors
Se c -Fetch-Site: кросс-сайт
Пользователь- Агент: Mozilla / 5.0 (Macintosh; Intel Ma c OS X 10_14_6) AppleWebKit / 537.36 (K HTML, как Gecko) Chrome / 79.0.3945.117 Safari / 537.36

Мой запрос выглядит так:

const url = 'https://api.example.com/foo';
const headers =  {
  'Content-Type': 'application/json; charset=UTF-8'
  };
const data = JSON.stringify([{"name": "SomeName","date": "2020-01-30T14:50:56.636Z"}]);

axios.put(
  url,
  data,
  {headers: headers}
  )
  .then(res => {
      console.log(res);
  })
  .catch((e) => {
      console.log(e);
  });

Мой API является основным приложением. net. Спасибо друзья!

1 Ответ

0 голосов
/ 15 января 2020

Я разобрался с проблемой; в API обработчики опций имели некоторые параметры (так как я копировал pasta'd запрос PUT для опций), и браузер не отправлял параметры в предварительной проверке, поэтому я получал 415. Как только я удалил параметры, он работал отлично!

...