2016-12-17 53 views
0

我已經創建了一個在AWS上調用lambda函數的API網關。爲了得到它的鏈接是:即使啓用CORS,AJAX似乎也無法獲取AWS API網關

https://z4eiy7g9n0.execute-api.us-east-1.amazonaws.com/test/rotation

點擊它應該返回比6000我想使用Javascript功能來獲得API更大一些,我的理解是,我需要使用AJAX來做到這一點。所以,我有以下的javascript(jQuery的進口3.1.1):

$(document).ready(function(){ 
    $("button").click(function(){ 
     $.ajax({ 
     url: "https://z4eiy7g9n0.execute-api.us-east-1.amazonaws.com/test/rotation", 
     headers: {"Content-Type": "text/json"}, 
     type: "GET", 
     success: function() { alert('Success!'); } 
     }); 
    }); 
}); 

這並不是因爲跨域的東西工作,所以我的理解是我需要啓用CORS。所以,我按照http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html中的說明操作。我有

Access-Control-Allow-Origin*: '*' 
Access-Control-Allow-Headers: 'Content-Type' 

我的理解是源可以是任何域,唯一需要包含的頭是'Content-Type'。但是,當我點擊我的按鈕來觸發此事件時,我的控制檯中出現以下錯誤。

XMLHttpRequest無法加載 https://z4eiy7g9n0.execute-api.us-east-1.amazonaws.com/test/rotation。 對預檢請求的響應未通過訪問控制檢查:否 請求的 資源上存在「訪問控制 - 允許來源」標頭。原因'http:// ****'因此不被允許訪問。該 響應了HTTP狀態代碼現在403

,我可以使用httr包來自R調用API,所以我知道它可以從至少一些系統調用。

我在做我的AJAX請求或我的API有什麼問題?

回答

0

問題是我沒有在啓用CORS的情況下部署修改後的資源。一旦我部署了資源,JavaScript就開始正常工作。

0

我已經成功地使用AJAX連接到啓用CORS的API,並且我不記得在頭文件中傳遞內容類型。您是否試過application/json而不是text/json?我相信這是通過AWS控制檯上的CORS嚮導配置的方式。

相關問題