Angular AWS заблокирован политикой CORS - PullRequest
0 голосов
/ 02 февраля 2019

Привет! Я создал шлюз AWS API, который обращается к лямбда-функции.

Если я пытаюсь вызвать шлюз из Почтальона, все работает нормально.Но когда я пытаюсь вызвать API get с помощью приложения Angular, я получаю следующую ошибку:

Доступ к XMLHttpRequest в 'apiUrl' из источника 'http://localhost:8100' заблокирован политикой CORS: На запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».

Я создаю свой угловой запрос со следующим кодом:

let params = new HttpParams().set('username','test@mail.com').append('password','1234');
this.http.get(apiUrl, {params}).subscribe(
res => {alert('success');},
err => {alert('fail');}
)

Я уже включенCORS в моем API-шлюзе.Я надеюсь, что вы, ребята, можете помочь мне вызвать мой API AWS.

Мой текущий метод выбора выглядит следующим образом: Ответ интеграции

Ответы [ 2 ]

0 голосов
/ 03 февраля 2019

В API Gateway, в разделе Ресурсы -> Действия.В раскрывающемся списке Действия можно включить CORS.Проверьте, включены ли CORS и разрешены ли все источники.

0 голосов
/ 02 февраля 2019

Вы правильно формируете свой запрос в Angular.Эта проблема не имеет ничего общего с клиентской стороной вашего приложения, и все, что связано с тем, как вы настроили поддержку CORS в AWS.

Почтальон нормально обращается к вашему API, потому что Почтальон не применяет "тот же источник""политика, которую выполняет веб-браузер, то есть полностью обходит CORS.

Чтобы браузер успешно сделал запрос, API должен ответить на запрос OPTIONS в той же конечной точке с кодом возврата 200 и включитьЗаголовок Access-Control-Allow-Origin в этом ответе, указывающий на фактическое происхождение запроса или подстановочный знак '*'.

Документация AWS по этому вопросу довольно ясна и обширна.

...