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});
当我尝试向本地 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});