Auth headers 在请求绝对 url 时被删除

Auth headers getting removed when requesting absolute url

当我尝试向本地 url 发出请求时,一切正常。但是,当我将 url 更改为我们测试服务器(以 http 为前缀)的实际 url 时,http auth header 似乎已从请求中删除。 评论的 $http... 有效。但是下面的不是。 有人知道为什么会这样吗?

function OneCitizensList($scope, $http) {
   var username = "user",
      password = "pass";

   $scope.citizen = [];
   $scope.medication = [];

// $http.get('/mobile/unity/patient/?patientId=36', {
   $http.get('http://something:8083/unity/medication/list?patientId=102', {
   headers: {
       'Authorization': "Basic " + Base64Encoder(username + ':' + password)
     }
     }).
      success(function(data, status, headers, config) {
         console.log(data);

      }).
      error(function(data, status, headers, config) {
         console.log("Error");
      });
}

我认为您在 headers object 中缺少一个括号。

$http.get('http://something:8083/unity/medication/list?patientId=102', {
   headers: {
       {'Authorization': "Basic " + Base64Encoder(username + ':' + password)}
     }
     }).
      success(function(data, status, headers, config) {
         console.log(data);

      }).
      error(function(data, status, headers, config) {
         console.log("Error");
      });

或完整方法(不是short-hand):

$http({method: 'GET', url: 'http://something:8083/unity/medication/list?patientId=102', headers: {
    'Authorization': "Basic " + Base64Encoder(username + ':' + password)}
});

还要确保您的服务器允许 CORS 请求。

为了使基本身份验证有效,您还需要 withCredentials: true,在您的 $http 配置中。

示例:

$http.get('https://yourURL.test', { headers: {your_headers}, withCredentials: true});