亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

API 網關,被 CORS 策略阻止:沒有“Access-Control-Allow-Origin”

API 網關,被 CORS 策略阻止:沒有“Access-Control-Allow-Origin”

Go
慕村225694 2023-05-08 14:54:00
我知道這個問題可能會重復,但是現有的問題都沒有指向我沒有做的任何事情......我已經使用無服務器框架部署了一個 API,但我在使用 CORS 時遇到了問題。我正在使用 axios 進行獲取請求:axios.get('https://test.execute-api.us-west-1.amazonaws.com/dev/test?from=2012-01-09T21:40:00Z')     .then(response => {       this.data = response.data;     })     .catch(error => console.log(error))我收到以下錯誤:Access to XMLHttpRequest at 'https://test.execute-api.us-west-1.amazonaws.com/dev/test?from=2012-01-09T21:40:00Z' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.我已經做了什么:確保 API 網關中有一個 OPTIONS 方法,其方法響應如下所示:確保我部署了這些更改。此外,我的 Lambda 函數的響應返回以下標頭:return events.APIGatewayProxyResponse{    StatusCode: http.StatusOK,    Headers: map[string]string{        "Access-Control-Allow-Origin":      "http://localhost:8080",        "Access-Control-Allow-Credentials": "true",    },    Body: string(jsonEvents),}, nil我也嘗試設置Access-Control-Allow-Origin為'*'我的 serverless.yml 文件包含cors: true每個函數事件:functions:  deploymentFrequency:    handler: bin/update/deployment-frequency    events:      - http:          path: deployment-frequency          method: post          cors: true  fetchDeploymentFrequency:    handler: bin/fetch/deployment-frequency    events:      - http:          path: deployment-frequency          method: get          cors: true我錯過了什么?似乎沒有任何效果。該請求在 Postman 中運行良好,并且看起來包含標頭,因此這似乎是 OPTIONS 方法的問題。
查看完整描述

4 回答

?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

我的配置是:


(event, context, callback) => {

   callback(null, {

      statusCode: (code || 200),

      body: JSON.stringify(resp),

      headers: { 'Access-Control-Allow-Origin': '*'},

   });

}

它對我來說很好用。我以前遇到過和你一樣的問題,但只要你用 CORS: true 定義你的函數并且你的響應包含標題,你應該沒問題。


注意:我不理解語法“map[string]string”,在這種情況下不需要憑據。


查看完整回答
反對 回復 2023-05-08
?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

啟用Lamba 代理集成


return events.APIGatewayProxyResponse{

    StatusCode: http.StatusOK,

    Headers: map[string]string{

        "Access-Control-Allow-Origin": "*",

        "Content-Type": "application/json",

    },

    Body: string(jsonEvents),

}, nil

http://img1.sycdn.imooc.com//64589cd000014ecb06530333.jpg

查看完整回答
反對 回復 2023-05-08
?
紫衣仙女

TA貢獻1839條經驗 獲得超15個贊

事實證明我忽略了響應中的狀態代碼:(

我意識到我實際上遇到了兩個錯誤:

  • 缺少 Content-Type 標頭的 406 狀態代碼

  • CORS 錯誤

第一個錯誤是因為我沒有將 Content-Type 標頭傳遞給請求(我檢查了我的代碼我完全忘記了期望該標頭)。

第二個錯誤是因為我沒有將Access-Control-Allow-Origin標頭添加到我的函數的錯誤響應中。


查看完整回答
反對 回復 2023-05-08
?
九州編程

TA貢獻1785條經驗 獲得超4個贊

在您的終端中,轉到根項目路徑并運行:


npm i cors

并且,在您需要將此代碼放入您的之后index.js:


const cors = require("cors"); 

app.use(cors());


查看完整回答
反對 回復 2023-05-08
  • 4 回答
  • 0 關注
  • 186 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號