我得到了
尝试在API网关上启用CORS时,为什么会这样,我该如何解决?使用AWS SAM部署这些功能。但我注意到,如果我通过AWS Console创建自己的API,那么也会发生这种情况
错误如下:
我发现我似乎需要添加一个"空"回应模特自己?
现在,我得到了
将Access-Control-Allow-Origin集成响应标头映射添加到POST方法(指定的响应状态代码无效)
我该如何解决这个问题?
答案 0 :(得分:12)
首先请选择您的根资源并选择“启用CORS”。它将为所有方法启用CORS。理想情况下它应该工作。如果它不起作用请在响应中添加一个空的json,因为我已在附加的屏幕截图中标记。我相信您的OPTIONS方法响应中没有添加任何默认响应标头(在方法响应中)。请参考截图
答案 1 :(得分:4)
答案 2 :(得分:4)
我在API Gateway + Lambda上遇到了CORS问题,以上答案并没有帮助我,但我发现我需要在我的API中的响应代码中添加一些标头信息。
我需要添加res.statusCode
和两个标头。
// GET
// get all myModel
app.get('/models/', (req, res) => {
const query = 'SELECT * FROM MyTable'
pool.query(query, (err, results, fields) => {
//...
const models = [...results]
const response = {
data: models,
message: 'All models successfully retrieved.',
}
//****** needed to add the next 3 lines
res.statusCode = 200;
res.setHeader('content-type', 'application/json');
res.setHeader('Access-Control-Allow-Origin', '*');
res.send(response)
})
})
答案 3 :(得分:0)
2020年的答案:如今,在仪表板上创建API时有一个称为HTTP API的选项。对于这种类型,我发现CORS配置要容易得多。如果您具有这种类型的有效API,只需在侧栏中的“开发”下单击“ CORS”,然后在Access-Control-Allow-Origin下添加“ *”。