就像背景一樣,我有一個反應應用程序坐在遠程EC2 Ubuntu實例上。同一臺服務器還運行Go應用程序,監聽端口8080(端口已從安全設置開放給所有人)。提取API與localhost/127.0.0.1不兼容
我試圖與獲取API的請求,從作出反應的應用程序,如下所示:
var bearer = 'Bearer ...'
return fetch('http://localhost:8080/home', {
headers: new Headers({
'Authorization': bearer
})
})
在控制檯中,來自Chrome和Firefox,我得到:
類型錯誤:嘗試獲取資源時出現網絡錯誤
當我用127.0.0.1
替換localhost
時也是如此。
但是,使用EC2實例的外部IP可以工作(並觸發CORS請求 - 由於「授權」標頭 - 服務器可以順利處理)。
在後一種情況下,我還可以看到服務器記錄傳入請求的OPTIONS和GET(在前一種情況下,兩種方法都不存在日誌)。
我也嘗試從EC2機CURL'ing到localhost
和請求有效地通過這導致我認爲與Fetch API請求根本沒有觸發。
任何意見,將不勝感激。如果我做錯了任何事情,請指出正確的方向。
您在瀏覽器中使用哪個網址來打開頁面(即實際的提取請求)? – Dekel
我正在使用EC2實例(端口80)的外部IP地址,即成功獲取請求所針對的IP地址。 – Andy