![](/img/trans.png)
[英]How to enable CORS policy in AWS between API Gateway and React app?
[英]"Enable CORS" in AWS API Gateway resource?
我的 AWS API 網關有問題。 我正在使用 Angular 4 開發一個 web 應用程序(使用 TypeScript 語言),但是如果我從前端調用 PUT 方法,則會出現以下錯誤消息:
Method PUT is not allowed by Access-Control-Allow-Methods in preflight response.
這很奇怪,因為在 AWS 控制台中,PUT 方法完美運行(我在部署后的一個階段直接從 API 網關控制台進行了許多測試,一切正常)。 如果我 go 到“操作/啟用 CORS”所有方法都有檢查,包括 PUT 方法,我沒有解釋 API 網關到底有什么問題。
如果在 API 網關中一切正常,為什么會出現此錯誤? 有沒有辦法改變這些CORS?
我記得前段時間被同樣的問題困擾時......
使用 Lambda 或 HTTP 代理集成時,您至少需要在 lambda 的響應中指定Access-Control-Allow-Origin
標頭。 您可能指定了額外的(目前手頭沒有任何代碼)。 我確實記得這條消息有點誤導,從管理控制台進行的測試之所以有效,是因為它並沒有真正使用 CORS,因為控制台執行測試的方式。
看看最后一部分: 為 REST API 資源啟用 CORS
exports.handler = async (event) => {
const response = {
statusCode: 200,
headers: {
"Access-Control-Allow-Headers" : "Content-Type",
"Access-Control-Allow-Origin": "https://www.example.com",
"Access-Control-Allow-Methods": "OPTIONS,POST,GET"
},
body: JSON.stringify('Hello from Lambda!'),
};
return response;
};
您需要將Access-Control-Allow-Origin
替換為客戶端應用程序使用的主機名。 作為快速測試使用*
,但不要投入生產,因為這違背了 CORS 的目的。
請按照以下步驟操作,
創建 OPTIONS 后啟用如下所示的 CORS
來源:- https://forums.aws.amazon.com/thread.jspa?messageID=644489
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.