簡體   English   中英

AWS Api Gateway 403錯誤-從所有來源啟用CORS

[英]AWS Api Gateway 403 error - CORS enabled from all origins

我創建了一個lambda函數,可以通過API網關進行訪問。 但是,每當發出發布請求時,都會出現以下錯誤

在此處輸入圖片說明

當我導航到控制台並查看API Gateway時,

在此處輸入圖片說明

最后,我的代碼(Angular2)確實通過以下方式將適當的標頭添加到請求中:

var headers = new HttpHeaders();
headers.append('Content-Type', 'application/json');

this.http.post('https://execute-api.us-east-1.amazonaws.com/prod/LambdaFunction', this.email, { headers: headers })
  .subscribe(data => console.log(data),
    err => console.log(err));

任何想法如何解決這個問題?

好像您在打錯灌木叢。

您不能在403上啟用CORS,因為這是由APIGateway發送的。 問題是您正在嘗試訪問APIGateway無法訪問的URL。

如果您的URL正確並且POST有效,那么在CORS呼叫中您仍然會收到200 OK,但是您將無法訪問收到的內容。 (這是瀏覽器的標准,以避免在沒有返回頭的有效許可的情況下進行CORS調用)

我遇到了同樣的錯誤,並通過以下路徑解決了該問題:

  • 啟用CORS選項可在響應中添加“ Access-Control-Allow-Origin”:“ *”標頭。 不要將身份驗證器添加到選項資源。
  • 將插件添加到Web瀏覽器以覆蓋瀏覽器的cors設置。 (僅用於在瀏覽器上進行測試。當應用在文件系統上運行時,您不需要這樣做)
  • 檢查您的請求網址/端點,以確保可以。

先嘗試一下

  1. 啟用CORS選項可在響應中添加“ Access-Control-Allow-Origin”:“ *”標頭。 不要將身份驗證器添加到選項資源。
  2. 將插件添加到Web瀏覽器以覆蓋瀏覽器的cors設置。 (僅用於在瀏覽器上進行測試。當應用在文件系統上運行時,您不需要這樣做)
  3. 檢查您的請求網址/端點,以確保可以。

如果無法從上方解決此問題,請使用以下選項。 就我而言,請按以下步驟解決。

  1. 在默認4XX響應中添加Access-Control-Allow-Origin:*。 (請參閱下圖。)
  2. 重新部署API。

    在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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