【问题标题】:Request header field Authentication is not allowed by Access-Control-Allow-HeadersAccess-Control-Allow-Headers 不允许请求标头字段身份验证
【发布时间】:2014-02-20 20:10:07
【问题描述】:

我在 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 Key 已被关闭)

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

【问题讨论】:

    标签: node.js angularjs express


    【解决方案1】:

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

    【讨论】:

    • !感谢您的快速回复。如何在 JSONP 中包装 JSON 对象。我现在收到语法错误。 google 上没有关于如何在 JSONP 中包装 JSON 对象的文章(只有堆栈溢出问题)。再次感谢您的所有帮助!
    • 我尝试了以下stackoverflow.com/questions/16344933/…。我收到 403 错误。
    【解决方案2】:

    您正在尝试执行跨域脚本,由于存在安全问题,大多数(如果不是全部)浏览器都禁用了该脚本。

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

    【讨论】:

    • 谢谢库尔特!为什么从另一台服务器传递 JSON 对象时会出现安全问题?
    猜你喜欢
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    • 2013-07-05
    • 1970-01-01
    • 2020-02-16
    • 2018-12-14
    • 2012-09-06
    相关资源
    最近更新 更多