Ошибка XMLHttpRequest в флаттере [Включение CORS] - PullRequest
0 голосов
/ 12 февраля 2020

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

Ошибка при получении данных датчика: DioError [DioErrorType.RESPONSE]: ошибка XMLHttpRequest.

Я знаю, что здесь есть несколько вопросов о SO (например, this и это ) обсуждение этой проблемы, и кажется, что решение состоит в том, чтобы включить поддержку CORS на стороне сервера. Я использую AWS API-шлюз для построения API, я следовал этим инструкциям, чтобы включить поддержку CORS из моего API. Вот мои настройки CORS из консоли шлюза API.

enter image description here

Текст в "Access-Control-Allow-headers" -

'Content-Type, X -Amz-Date, Авторизация, X-Api-Key, X-Amz-Security-Token '

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

Самое смешное, что API работает отлично, если я нажал на API с chrome (т.е. вставил URL-адрес API в браузер и нажал Enter). Сбой происходит только тогда, когда я пытаюсь запустить API из веб-приложения.

Вопрос: Как включить поддержку CORS в моем API-шлюзе, чтобы мое веб-приложение могло использовать API?

1 Ответ

1 голос
/ 27 марта 2020

это сработало для меня, я добавил ниже заголовок лямбда-функции

return {
    statusCode: 200,
     headers: {
  "Access-Control-Allow-Origin": "*", // Required for CORS support to work
  "Access-Control-Allow-Credentials": true, // Required for cookies, authorization headers with HTTPS
  "Access-Control-Allow-Headers": "Origin,Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token",
  "Access-Control-Allow-Methods": "POST, OPTIONS"
},
    body: JSON.stringify(item)
};
...