[英]Can't call callback with nodejs, aws lambda and aws api gateway
[英]Can't access API with Lambda and API Gateway
我有一個 aws lambda 函數,它返回以下響應:
var responseBody = { cost: price };
var response = {
statusCode: 200,
headers: {
"Access-Control-Allow-Origin": "*"
},
body: JSON.stringify(responseBody),
isBase64Encoded: false
};
callback(null, response);
但是我在前端 Angular 應用程序中收到以下錯誤。
CORS 政策已阻止在“https://xxxxxxxxx.execute-api.us-east-1.amazonaws.com/dev/price ”處訪問 XMLHttpRequest,來自源“ http://127.0.0.1:8080 ”:響應預檢請求未通過訪問控制檢查:它沒有 HTTP ok 狀態。
如果您使用的是 API Gateway HTTP API(不確定這是否與 REST API 相關):
假設我在/POST products
有一個端點。 我不得不在/OPTIONS products
添加另一個端點,並將其與一個簡單的 Lambda 函數集成,該函數只返回 HTTP 200 OK(或 HTTP 204 No Content)和"Access-Control-Allow-Origin": "*"
標頭(或者甚至更好,指定源/客戶端的 URL)。
這是因為瀏覽器在發出實際請求(查看更多信息)之前,針對除GET
和POST
之外的所有 HTTP 請求(具有某些 MIME 類型( 源))向同一端點發出預檢/OPTIONS
請求。
您需要使用 API 網關在您的資源上啟用 CORS,請查看此鏈接以獲取更多信息https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.