我有一个访问测试数据库的Angular应用程序。这已经奏效了,但在周末我不再允许访问。我没有对Angular代码进行任何更改。这是问题所在。
为了访问测试数据库,我必须传入用户名和密码,因为数据库正在使用Basic HTTP Auth。我的资源最终看起来像这样。
angular.module("CoolApp.misc")
.factory('Ad', ad)
ad.$inject = ['$resource'];
function ad($resource) {
return $resource('http://username:password@build.com/api/advertisement.json');
}
现在我跑
Ad.get({}, function(resp) {}, function(badresp) {console.log(badresp)})
控制台吐出badresp对象。我查看了我的配置标题部分,并注意到这是网址...
url: "http://username@build.com/api/advertisement.json"
等一下,我将密码设置为url。为什么标题没有提供密码?这就是我在我的控制台中收到No 'Access-Control-Allow-Origin' header is present on the requested resource.
的原因吗?
这里是踢我的http配置
angular.module("CoolApp")
.config(config);
config.$inject = ["$httpProvider"];
function config($httpProvider) {
$httpProvider.defaults.useXDomain = true;
//$httpProvider.defaults.withCredentials = true;
delete $httpProvider.defaults.headers.common["X-Requested-With"];
$httpProvider.defaults.headers.common["Accept"] = "application/json";
$httpProvider.defaults.headers.common["Content-Type"] = "application/json";
}
我的问题是,这有什么问题,我该如何解决?
答案 0 :(得分:1)
This gives x = 8 and y = -1 hence,
如果你说你上次触摸它后没有更改前端代码,那么这只能意味着服务器上的某些内容发生了变化......基于你的错误提供,似乎是一个非常明显的例子,有人要么删除服务器上的No 'Access-Control-Allow-Origin' header is present on the requested resource.
,要么限制起源。
你不能在客户端上改变它;必须在服务器上更改。