【问题标题】:AngularJS $http setting headersAngularJS $http 设置标头
【发布时间】:2017-08-30 05:43:24
【问题描述】:

我正在尝试在 AngularJS 中设置 http,但似乎我做错了什么。

app.controller("mainCtrl", function ($scope, $http) {
    $http({
        method: 'GET',
        url: '***',
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json'
        }
    }).success(function (data, status, headers, config) {
        console.log("data", data);
        console.log("status", status);
        console.log("headers", headers);
        console.log("config", config);
    }).error(function (data, status, headers, config) {
        console.log("data", data);
        console.log("status", status);
        console.log("headers", headers);
        console.log("config", config);
    })
})

我的主要兴趣是设置accept: json,但如果我在谷歌浏览器的开发工具中检查请求标头,它总是只显示Accept:\*/\*

编辑: 在服务器上设置了 CORS,但我仍然收到此错误无响应。

XMLHttpRequest cannot load http://inpro.smid.co.cz:8080/InproRestApi/webresources/entities.regions. Request header field Access-Control-Allow-Origin is not allowed by Access-Control-Allow-Headers in preflight response.

【问题讨论】:

    标签: javascript angularjs angularjs-http


    【解决方案1】:

    您是否检查了服务器是否配置了 Access-Control-Allow-Origin 标头,这可能是 CORS 问题。

    【讨论】:

    • 它没有。我会看看它何时会实施。谢谢
    • Access-Control-Allow-Origin 标头设置为 *
    • 您好 Jan,我刚刚检查了您的服务器(您的错误消息中的那个)。它提供的错误表明这是一个服务器端问题。我认为访问控制标头没有像您假设的那样设置为 *。我已经检查了您的 sn-p 并且它工作正常(在另一台服务器上)您可以使用 httpbin.org 自己检查
    • 嗨,感谢尼尔斯的帮助。我们曾经有它,现在我们开始使用它的设置,它又消失了。
    【解决方案2】:

    在你的控制器类中简化如下添加

    @CrossOrigin(origins = "*") 公共类控制器 {

    【讨论】:

    • 虽然在这种情况下仅代码答案可能会回答问题,但最好包含WHY 您的答案可以解决 OP 的问题,以便他们可以从经验中学习
    猜你喜欢
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    • 2015-12-02
    • 2012-05-15
    • 1970-01-01
    相关资源
    最近更新 更多