我尝试连接到API并发送身份验证标头。 我正在使用此处所述的Base64 How do I get basic auth working in angularjs?
function Cntrl($scope, $http, Base64) {
$http.defaults.headers.common['Authorization'] = 'Basic ' + Base64.encode('----myusername----' + ':' + '----mypass---');
$http({method: 'GET', url: 'https://.../Category.json'}).
success(function(data, status, headers, config) {
console.log('success');
}).
error(function(data, status, headers, config) {
alert(data);
});
}
但我收到此错误
XMLHttpRequest无法加载https://.../Category.json?callback=? No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' http://....com'因此不允许访问。响应的HTTP状态代码为400。
答案 0 :(得分:3)
看起来您遇到了跨源资源共享(CORS)的问题。阅读: How does Access-Control-Allow-Origin header work?
如果您控制服务器,那么您可以让它根据您引用的问题中的服务器代码(How do I get basic auth working in angularjs?)发回适当的Access-Control-Allow-Origin
标头