2014-01-29 91 views
2

我在Stack Overflow上看到了很多這個問題,沒有解釋它的meaning。有人可以解釋這個錯誤實際上的意思嗎?請求標頭字段訪問控制允許標題不允許進行身份驗證

Request header field Authentication is not allowed by Access-Control-Allow-Headers.

我在我的應用程序得到一個奇怪的錯誤。

如果您打開 http://verse-pack.herokuapp.com/#/pack並單擊搜索我收到上述錯誤。

但是,如果從搜索路徑(即http://verse-pack.herokuapp.com/#/search)刷新頁面,則不會發生錯誤。對於理解這個問題或者幫助我解決這個問題的任何幫助將不勝感激!謝謝。

我目前正在使用Node.js,Express.js和Angular.js堆棧。

這是導致錯誤的代碼(API密鑰已經被切換出)

$http.get("http://api.biblia.com/v1/bible/contents/LEB?key=abc123", {headers: {'Authentication': '*'}}).success(function(data) { 
     console.log("What"); 
     $scope.tof = data; 
    }); 

回答

1

你正在試圖做的跨域腳本,這是在大多數禁用(如果不是全部)的瀏覽器因爲它有安全問題。

解決方法是在服務器上啓用CORS(或jsonp),以便可以進行跨域調用。請記住,這可能會導致安全問題。 (他們沒有理由在瀏覽器中禁用這些請求)

+0

謝謝庫爾特!爲什麼在從另一臺服務器傳遞JSON對象時會出現安全問題? –

1

您正在從不同的域名調用「http://api.biblia.com/v1/bible/contents/LEB?key=777f34839f61b2c1097db13992d4cabc」。這將導致跨域問題。您需要使用JSONP請求或請求「biblia.com」接受跨域請求。我建議使用「JSONP」。

+0

!感謝您的快速響應。如何在JSONP中包裝JSON對象。我正在獲取語法錯誤。在google上沒有關於如何在JSONP中包裝JSON對象的文章(只有堆棧溢出問題)。再次感謝您的幫助! –

+0

我嘗試了以下的http://stackoverflow.com/questions/16344933/angularjs-jsonp-not-working/16352746#16352746。我得到一個403錯誤。 –

相關問題