Подтвердить что ты не робот

Как сделать HTTP-запросы с поддержкой CORS в Angular 2?

Ошибка следующая:

XMLHttpRequest не может загрузить http://some_url.herokuapp.com/api/some_api/. В запрошенном ресурсе нет заголовка "Access-Control-Allow-Origin". Origin 'http://localhost:3000', следовательно, не допускается. В ответе был код статуса HTTP 503.

при вызове

return this._http.post(requestUrl, JSON.stringify(requestBody), requestOptions)

У меня были проблемы с CORS (при работе с Angular 1) в прошлом, и я помню, что после активации CORS на стороне сервера мне пришлось преобразовать http-запрос в проанализировать определенные HTTP-заголовки.

Я очень смущен тем, как он должен работать, поэтому любое объяснение очень приветствуется.

4b9b3361

Ответ 1

На самом деле это не проблема Angular2, а проблема на стороне сервера. Запрошенный запрос OPTIONS должен вернуть заголовок Access-Control-Allow-Origin в ответ.

Отправка заголовка Origin в исходном запросе позволит поддерживать CORS на стороне сервера. Этот заголовок автоматически добавляется браузером, когда он обнаруживает, что домен запроса не совпадает с доменом вызывающего.

Будьте внимательны при реализации запроса опций OPTIONS на стороне сервера, поскольку учетные данные не отправляются на этом уровне. Они отправляются только в целевой запрос. Кажется, это проблема, так как у вас есть ошибка 503. Вы пытаетесь проверить, проверен ли запрос OPTIONS, но на самом деле это не так...

См. эту статью для более подробной информации: