PUT 方法的 CORS 访问错误,在弹性 beantalk 上托管的 aws 上 api
CORS access error for PUT method, api on aws hosted on elastic beanstalk
我已经使用 http 自定义集成在 AWS API 网关上部署了 api
我已经启用了 CORS,如下所示:
(来源:upload.cat)
对于 GET 和 PUT 方法,我收到以下错误:
“来自 [my origin] 的 url 已被 CORS 策略阻止:请求的资源上不存在 'Access-Control-Allow-Origin' header”
代码:
fetch(url, {
method: 'POST',
mode: "cors",
headers: {
'Content-Type': 'application/json',
'Access-Control-Allow-Headers': 'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token' //copied from screenshot above
},
body: JSON.stringify(data)
})
.then(response => console.log('Success:', response))
.catch(error => console.error('Error:', error));
}
Access-Control-Allow-Headers
已在服务器中设置,您应将其从您的代码中删除。如果你把它放在你的请求中,它不会有任何区别。
您的 API 网关方法是否受 Lambda 授权方保护或配置为使用 API 密钥?如果是这样,请求可能会被其中之一拒绝并且响应将不包含 Access-Control-Allow-Origin
header 因此浏览器的预检检查将失败。
您还需要检查 API 方法集成返回的响应。对于 Proxy Lambda,响应应包括 Access-Control-Allow-Origin
header.
我已经使用 http 自定义集成在 AWS API 网关上部署了 api
我已经启用了 CORS,如下所示:
(来源:upload.cat)
对于 GET 和 PUT 方法,我收到以下错误: “来自 [my origin] 的 url 已被 CORS 策略阻止:请求的资源上不存在 'Access-Control-Allow-Origin' header”
代码:
fetch(url, {
method: 'POST',
mode: "cors",
headers: {
'Content-Type': 'application/json',
'Access-Control-Allow-Headers': 'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token' //copied from screenshot above
},
body: JSON.stringify(data)
})
.then(response => console.log('Success:', response))
.catch(error => console.error('Error:', error));
}
Access-Control-Allow-Headers
已在服务器中设置,您应将其从您的代码中删除。如果你把它放在你的请求中,它不会有任何区别。
您的 API 网关方法是否受 Lambda 授权方保护或配置为使用 API 密钥?如果是这样,请求可能会被其中之一拒绝并且响应将不包含 Access-Control-Allow-Origin
header 因此浏览器的预检检查将失败。
您还需要检查 API 方法集成返回的响应。对于 Proxy Lambda,响应应包括 Access-Control-Allow-Origin
header.