Задать вопрос
@Sashqa

CORS блочит запросы, как быть?

Я в запросе отправляю все заголовоки
const headers = new HttpHeaders({
  'Content-Type':  'application/xml',
  'Accept':  'application/xml',
  'Response-Type': 'text',
  'Access-Control-Allow-Origin': '*',
  'SOAPAction': '',
})
console.log(headers)
return this.http.post('http://site.ru', query, { headers }).subscribe(res => {
  console.log('res', res);
}, error => console.log('error', error));


На беке тоже все добавили
Response Headers
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Origin: *
Access-Control-Max-Age: 1728000
Age: 0
Connection: Keep-Alive
Content-Length: 0
Content-Type: text/plain charset=UTF-8
Date: Fri, 15 Nov 2019 08:19:38 GMT
Proxy-Connection: Keep-Alive
Server: nginx/1.12.2
Via: 1.1 forcepoint-wcg.soglasie.ru, 1.1 TMG-NODE1


Но ошибка все равно есть
Access to XMLHttpRequest at 'http://site.ru' from origin 'http://localhost:3000' has been blocked by CORS policy: Request header field access-control-allow-origin is not allowed by Access-Control-Allow-Headers in preflight response.
  • Вопрос задан
  • 1600 просмотров
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 4
@Dozalex
Senior Frontend Developer
Судя по ошибке, вам необходимо добавить заголовок access-control-allow-origin в список Access-Control-Allow-Headers
Ответ написан
Комментировать
@Dasslier
FrontEnd Developer
Если используете Chrome, возможно причина в нем. Поставьте браузерное расширение CORS
Ответ написан
Комментировать
Sanasol
@Sanasol Куратор тега JavaScript
нельзя просто так взять и загуглить ошибку
in preflight response.


OPTIONS запрос он делает сначала, а хедеры в вашем GET/POST ему нафиг не уперлись, он до них еще не дошел.
Ответ написан
@Revenant78
создай в корневой директории проекта proxy.config.json и пропиши конфиг
{
  "/api": {
    "target": "http://localhost:9000",
    "secure": false
  }
}

в package.json
"start": "ng serve --proxy-config ./proxy.json"
запускай проект с помощью npm run start
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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