错误:请求标头字段Access-Control-Allow-Origin不是 在访问前响应中被Access-Control-Allow-Headers允许。
在Chrome中禁用了cors插件的aws api时,出现上述错误。 启用cors后,api将返回正确的响应。
javascript中是否有任何机制可以从chrome中禁用cors的api获取响应?
我添加了我的请求和响应标头的屏幕截图以供参考
*注意:Cors已在服务器端(AWS api网关)上启用
答案 0 :(得分:0)
如果您将Lambda与Proxy Integrations一起使用,则需要在HTTP响应中指定CORS来源。
对于Lambda或HTTP代理集成,您仍然可以设置 API网关中必需的OPTIONS响应标头。但是,您必须 依靠后端返回Access-Control-Allow-Origin标头 因为禁用了代理的集成响应 积分。 https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html
在NodeJS中就像这样:
var response = {
statusCode: 200,
headers: {
"Access-Control-Allow-Origin" : "*"
},
body: JSON.stringify({
someReturnData
})
};
callback(null, response);
答案 1 :(得分:-1)
在飞行前响应中,Access-Control-Allow-Headers不允许请求标头字段Access-Control-Allow-Origin
不是,我们可以看到Access-Control-Allow-Origin
未在屏幕快照的Access-Control-Allow-Headers
响应标题中列出。
因此,您有两种选择:
由于Access-Control-Allow-Origin
是一个响应标头(您的JS无法授予其读取数据的权限—这会使CORS毫无意义)完全没有意义将其从客户,选项2是正确的。
修复您的客户端代码。