2016-11-19 162 views
2

此網址位於AWS API網關中,方法get和stage已部署良好。 我啓用了CORS之後的aws documentApi網關不允許訪問控制 - 允許來源

這是我啓用CORS的步驟。

-Resource-> action->啓用CORS-> 默認設置 - >啓用CORS並替換CORS頭。 CORS結果中沒有錯誤日誌。

我不是專業的網絡開發人員,我的瀏覽器是safari。
這裏是我的代碼查詢「http://my.com

function request(idex) { 
var xmlHttp = new XMLHttpRequest(); 
xmlHttp.onreadystatechange = function() { 
    if (xmlHttp.status == 200) 
     callback(xmlHttp.responseText); 
} 
xmlHttp.open("GET", "http://my.com", true); 
xmlHttp.send(null);} 

控制檯打印錯誤: 的XMLHttpRequest無法加載「http://my.com」原產地http://example.com沒有被訪問控制允許來源允許的。

如果在javascript請求或API網關部署中存在一些錯誤?

+2

在AWS中如何設置CORS肯定有問題,因爲我在本地設置了example.com作爲虛擬主機。完成後,我得到:'XMLHttpRequest無法加載http://my.com/。從'http://my.com/'重定向到'https://my.com/'已被CORS策略阻止:請求的資源上沒有'Access-Control-Allow-Origin'標頭。 Origin'http://example.com'因此不被允許訪問。' – Pegues

+0

非常感謝您,我認爲您的評論可以幫助我找到解決問題的方法。 – Cenxui

+0

我的榮幸。祝你好運! – Pegues

回答

2

諮詢和嘗試每種方法後,我發現錯誤如下。

根據AWS文檔,我們不能在啓用CORS之前部署我們的api。有關標題和CORS的所有設置必須在部署之前設置。 但是,API網關不會阻止此設置,也不會顯示任何錯誤對話框。即使您的設置過程顯示成功,API網關也不會更改標題。

+1

這聽起來像是一個AWS的錯誤。 – Huaying

2

交叉來源問題是從服務器端而不是JavaScript端。當服務器不允許來自其他域的請求時,它會引發交叉錯誤。但你說你已經在AWS實例

加入CORS由於JavaScript是唯一訪問來自my.com服務,你需要加入適當域映射在你my.com網站告訴大家,請求將來自另一個名爲域example.com。可能是服務器沒有正確配置。或者嘗試如果服務器期待任何標題。

嘗試,看看在任何其他客戶一樣的soapUI,在鍍鉻矩形的客戶端插件,等結果,一旦你確認是否有在服務器沒有問題,從JavaScript

嘗試

測試有一個鍍鉻的插件你可以嘗試

https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en

+0

謝謝你的幫助,讓我學到很多! – Cenxui

相關問題