【发布时间】:2017-10-16 00:45:55
【问题描述】:
有没有一种方法可以在远程服务器上不启用 CORS 的情况下使用 restful api 访问远程数据。
我问这个是因为我试图通过带有 angularjs 的 API 访问远程数据,并且我已经尽了最大努力似乎无法加载数据。我总是从 Chrome 中得到这个
请求的资源上没有“Access-Control-Allow-Origin”标头
下面是我的脚本
var auth = $base64.encode("dHNxdWFpbm9vOlFoYXNoZW0xMjM="),
headers = {"Authorization": "Basic " + auth};
$http({method: 'GET', url: 'http://mywebapp.com/Cust?account_number=010104051681',
headers: { 'Authorization': 'Basic dHNxdWFpbm9vOlFoYXNoZW0xMjM=' }
}).success
(function(data){
$scope.user=data;
console.log(JSON.stringify(data));
});
所以在没有启用 CORS 的情况下,我可以通过 JS 获取数据,或者除非我启用 CORS,否则我无法获取数据
【问题讨论】:
-
如果您控制 mywebapp.com 为什么不为呼叫来源启用 CORS?
-
当然。运行您自己的实现 jsonp 或 cors 的服务器,或者是本地服务器,并说服务器获取数据。容易。
-
如果不启用跨域资源共享,就不能共享跨域资源,不行。
-
服务器不是我的。我只是将该 URL 用作示例
-
您可以使用反向代理:en.wikipedia.org/wiki/Reverse_proxy
标签: javascript angularjs cors