请求标头字段Access-Control-Allow-Headers不允许进行身份validation

我在Stack Overflow上看到了很多这个问题,没有解释它的meaning 。 有人能解释这个错误实际上是什么意思?

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

我在应用程序中遇到了一个奇怪的错误。

如果你打开http://verse-pack.herokuapp.com/#/pack并点击search,我收到上面的错误。

但是,如果您从searchpath(即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; }); 

您正在尝试执行跨域脚本编写,在大多数(如果不是全部的话)浏览器中禁用,因为它存在安全问题。

解决方法是在服务器上启用CORS(或jsonp),以便可以进行跨域调用。 请记住,这可能会导致安全问题。 (他们没有理由在浏览器中禁用这些请求)

您正在从不同的域调用“ http://api.biblia.com/v1/bible/contents/LEB?key=777f34839f61b2c1097db13992d4cabc ”。 这将导致跨域问题。 您需要使用JSONP请求或请求“biblia.com”接受跨域请求。 我build议使用“JSONP”。