2016-03-05 280 views
-3

我遇到了一个问题,即添加Authentication标题会导致角度停止工作。这里是我的控制器代码:AngularJS基本身份验证

app.controller('LoginController', function ($scope, $http) { 
    var url = 'http://my.api.domain'; 
    $scope.login = function() { 
     var headers = {'Authorization': 'Basic base64username:email'}; 
     $http({ 
      url: url + '/login', 
      method: "GET", 
      withCredentials: true, 
      headers: headers 
     }); 
    } 
}); 

我已经经历了所有的CORS故障排除步骤,我不这么认为。当我设置标题时,Angular不会发出请求,但是如果标题未设置,它将会发出请求。

有没有其他人有这个问题?

+1

它在控制台中没有提供错误信息? – mason

+0

@mason不,没有什么。 – spencer4of6

+0

你看过你需要做什么[基本认证](https://en.wikipedia.org/wiki/Basic_access_authentication)吗?似乎你需要做一些base 64编码。 – mason

回答

0

所以问题是,角度被第一请求经由OPTIONS请求和API信息从所述服务器响应是不正确的(这是返回不正确的Access-Control-Accept-Headers值)。我花了一段时间才弄明白,因为我使用Firefox和Firebug进行调试,出于某种原因,它没有记录或显示OPTIONS请求。在Chrome或Edge上运行会显示问题。