red*_*ite 12 cors aws-lambda aws-api-gateway
我有这个 api(方法 get)连接到一个 lambda 函数,该函数从数据库中进行简单的选择,如果我用带有 null body 的 postman 测试端点,它确实可以工作(如果我理解,postman 不在同一个 CORS 下)政策),以及在浏览器上键入端点。

但是,当我尝试从简单的 js 中进行提取时,出现错误:从原点“http://localhost”在“...”处获取的访问已被 CORS 策略阻止:没有“Access-Control-Allow” -Origin'标头存在于所请求的资源上。如果不透明响应满足您的需求,请将请求模式设置为“no-cors”以在禁用 CORS 的情况下获取资源。
我在 API Gateway 中启用了 CORS,均使用启用 CORS 选项
并在创建新资源时启用 API Gateway CORS
如果我使用网关测试我的端点,我还会发现 Allow-content-allow-origin : * 位于我的响应标头中:

我应该怎么做才能解决这个问题?
这是 JS 获取:
console.log("pre fetch");
Show();
console.log("post fetch");
function Show(){
fetch("...").then(onResponse);//.then(onJson);
}
function onResponse(response){
console.log(response);
return response.json();
}
Run Code Online (Sandbox Code Playgroud)
我删除了 onJson 以避免混淆,但即使如此,它仍然存在同样的问题。
尝试将其也包含在您的函数中,就像这样,我希望这会起作用:
const headers = {'Content-Type':'application/json',
'Access-Control-Allow-Origin':'*',
'Access-Control-Allow-Methods':'POST,PATCH,OPTIONS'}
const response = {
statusCode: 200,
headers:headers,
body: JSON.stringify(X),
};
return response;
Run Code Online (Sandbox Code Playgroud)
这里X是您要返回的响应。
| 归档时间: |
|
| 查看次数: |
89046 次 |
| 最近记录: |