首页 > 解决方案 > 使用带有 API 网关 (CORS) 的超级代理发出 GET 请求

问题描述

因此,我遇到了 CORS 问题,我阅读了一些相关问题,这些人也遇到了 CORS 问题,并尝试了所有这些答案,但没有任何运气;所以我现在问我的问题,因为其他答案都没有成功。

我有一个使用 NodeJS Javascript 在 GatsbyJS 中运行的网站和一个带有 Lambda 代理集成的 API 网关。假设 api 端点是https://xxxx.execute-api.us-east-1.amazonaws.com/default

JSON:

{
"message": "Welcome"
}

现在的问题是收到的错误基本上是说“No Access-Control-Allow-Origin”标头存在于同一来源。它谈到它丢失了但是我去了这里按照本指南并添加了带有 Mock https://enable-cors.org/server_awsapigateway.html的选项方法 重新部署了 api 网关端点,甚至尝试添加 .set(headers, values ) 到我的超级代理获取请求,但仍然出现相同的错误。

我对如何解决这个问题没有想法。

这是我的代码示例:

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)
    }

标签: javascriptgetcorsaws-api-gatewaysuperagent

解决方案


试试 cors npm。例如启用您可以使用的所有 CORS 请求

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


推荐阅读