当我尝试向本地网址发出请求时,一切正常。但是,当我将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");
});
}
答案 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});