Выполнение запроса GET с использованием суперагента с API Gateway (CORS) - PullRequest
0 голосов
/ 08 апреля 2020

Итак, у меня проблема с CORS, и я прочитал несколько похожих вопросов о людях, у которых тоже была проблема с CORS, и попробовал все эти ответы, но им не повезло; поэтому сейчас я задаю свой вопрос, поскольку ни один из других ответов не помог.

У меня есть веб-сайт, работающий в Гэтсби JS с использованием NodeJS Javascript и шлюз API с интеграцией Lambda Proxy. Предположим, конечная точка API равна https://xxxx.execute-api.us-east-1.amazonaws.com/default

JSON:

{
"message": "Welcome"
}

Теперь проблема заключается в том, что я получаю ошибку, которая в основном говорит, что «Нет доступа Заголовок Control-Allow-Origin 'присутствует для того же источника. В нем говорится об отсутствии, однако я пошел и следовал этому руководству здесь и добавил метод options с помощью Mock https://enable-cors.org/server_awsapigateway.html Перераспределил конечную точку шлюза API и даже попытался добавить .set (заголовки, значения) в мой суперагент получить запрос и все еще получил ту же ошибку.

У меня нет идей, как решить эту проблему.

Вот пример моего кода:

superagent
  .get('https://xxxx.execute-api.us-east-1.amazonaws.com/default')
  .set('Access-Control-Allow-Origin', '*')
  .set('Access-Control-Allow-Credentials', 'true')
  .set('accept', 'json')
  .end((err, res) => {
    // Calling the end function will send the request
     console.log(res) // I should get welcome back
  });

Лямбда:

def lambda_handler(event, context):
    # TODO implement

    website_content = {
        'message': 'welcome'
    }


    return {
        'statusCode': 200,
        'body': json.dumps(website_content)
    }

1 Ответ

0 голосов
/ 08 апреля 2020

попробуй корс npm. например, чтобы включить все запросы CORS, вы можете использовать

const cors = require('cors') 
app.use(cors())

...