Угловое удаление ошибки CORS при получении данных с сервера - PullRequest
0 голосов
/ 16 мая 2019

Мое приложение, построенное на Angular + NGRX, извлекающее данные с сервера. На сервере размещены сервисы, построенные на Java Spring.

Сервисы Spring размещены в определенном домене, поэтому в угловом режиме мы обращаемся к ним с помощью определенного URL, скажем

 http://JavaService-hostedDomain/ServiceName

Весной для них создаются специальные контроллеры @GetMapping(/ServiceName)

Теперь я вижу, что для просмотра приложения я должен отключить веб-безопасность Chrome с помощью

--disable web security chrome command to launch chrome, тогда приложение загружается правильно.

При работе в Chrome без отключения веб-безопасности Chrome появляется следующая ошибка

XMLHttpRequest cannot load http://localhost:4200/url. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Как устранить вышеуказанную ошибку CORS, требуются ли изменения в Angular (на стороне клиента) или Java (на стороне сервера)?

Если есть возможность, как решить эту проблему, внося изменения только на угловой стороне?

1 Ответ

0 голосов
/ 17 мая 2019

У меня была эта проблема много раз, и она должна быть решена со стороны сервера, потому что я не знаю о Java, но вам нужно указать, какие источники могут быть приняты для отправки запроса на ваш сервер, потому что браузер блокирует все попытки безопасности.

Например, в Laravel (PHP) я установил библиотеку, которая управляет CORS следующим образом:

/*
|--------------------------------------------------------------------------
| Laravel CORS
|--------------------------------------------------------------------------
|
| allowedOrigins, allowedHeaders and allowedMethods can be set to array('*')
| to accept any value.
|
*/

'supportsCredentials' => false,
'allowedOrigins' => ['*'], // HOST allowed for making request
'allowedOriginsPatterns' => [],
'allowedHeaders' => ['*'],
'allowedMethods' => ['GET', 'POST', 'PUT',  'DELETE', 'OPTIONS'],
'exposedHeaders' => [],
'maxAge' => 0,
'hosts' => ['*']

Я надеюсь, что вышеизложенное может дать вам представление

Проверкаэто для весны Java: https://spring.io/guides/gs/rest-service-cors/

С уважением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...