@nick32

CORS не пропускает PUT запрос?

Обращаюсь через fetch к серверу на jetty.
Ответ содержит заголовки:
resp.addHeader("Access-Control-Allow-Origin", "*");
resp.addHeader("Access-Control-Allow-Methods", "PUT");
resp.addHeader("Access-Control-Allow-Headers", "Content-Type");
Но браузер выдает
Fetch API cannot load localhost:8081/admin/country. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'localhost:63343' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
index.html:1 Uncaught (in promise) TypeError: Failed to fetch
С GET работает нормально.
В чем причина такого странного поведения браузера?
  • Вопрос задан
  • 1669 просмотров
Пригласить эксперта
Ответы на вопрос 1
xakplant
@xakplant
Автор сайта xakplant.ru
Прочитайте эту статью про CORS
Возможно с PUT вы пытаетесь передать заголовки или авторизоваться. В этом случае у вас должен быть установлен https и заголовки ответа:
Access-Control-Allow-Credentials: true // Можно ли авторизовываться или нет
Access-Control-Allow-Origin: https://localhost:63343
Access-Control-Allow-Methods: PUT, OPTIONS
Access-Control-Allow-Headers: Content-Type, ... прочие заголовки, например Authorization или тот в котором логин и пароль
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы