AngularJS HTTP 标头配置。预检响应具有无效的 HTTP 状态代码 401

Posted

技术标签:

【中文标题】AngularJS HTTP 标头配置。预检响应具有无效的 HTTP 状态代码 401【英文标题】:AngularJS HTTP headers config. Response for preflight has invalid HTTP status code 401 【发布时间】:2016-09-16 09:33:04 【问题描述】:

我正在尝试使用 angular 获取 Rest 服务:

angular.module('coursExoApp').factory('serviceAjax', function ($http) 
return
    objects: function()
         var test=$http(
            method: 'GET',
            url: 'http://------------/Windchill/servlet/rest/changes/objects/getReports',
            headers: 
                'Authorization': 'Basic d2NhZG1pbjp3Y2FkbWlu'           
            
            ).
            success(function(data, status, headers, config) 
                console.log('success');
            ).
            error(function(data, status, headers, config) 
                console.log(config);
            );

            return test;
    
);

我收到了这个错误: IMAGE HERE

具有基本身份验证的服务在 postMan 上运行良好。 感谢帮助

【问题讨论】:

【参考方案1】:

听起来像是 CORS 的问题,也许您需要修改服务以允许请求的来源(您的应用运行的域)?

Chrome v37/38 CORS failing (again) with 401 for OPTIONS pre-flight requests

https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

【讨论】:

以上是关于AngularJS HTTP 标头配置。预检响应具有无效的 HTTP 状态代码 401的主要内容,如果未能解决你的问题,请参考以下文章

angularjs 和 PHP:预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段 Access-Control-Allow-Origin

django-cors-headers 和 nginx 配置:预检响应缺少 CORS 标头

被 CORS 策略阻止:对预检的响应...没有 HTTP ok 状态。标头没有解决问题

CORS 预检响应不正确/空标头

如何在AngularJS中丢弃预检响应

对预检请求的响应未通过访问控制检查:在标头中使用身份验证时,它没有 HTTP ok 状态 [关闭]