请求绝对URL时删除Auth标头

时间:2015-02-27 11:01:30

标签: angularjs restful-authentication

当我尝试向本地网址发出请求时,一切正常。但是,当我将url更改为我们的测试服务器的实际url(以http为前缀)时,http auth标头似乎从请求中被剥离。 评论的$ 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");
      });
}

1 个答案:

答案 0 :(得分:0)

我认为你在标题对象中缺少一个括号。

$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");
      });

或完整方法(不是简写):

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

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

为了使基本身份验证能够正常工作,您还需要在$ http配置中使用withCredentials: true

示例:

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