簡體   English   中英

無法使用 Lambda 和 API Gateway 訪問 API

[英]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)。

這是因為瀏覽器在發出實際請求(查看更多信息)之前,針對除GETPOST之外的所有 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM