我在angularjs网站上使用fixer.io api进行货币转换api。它过去运作良好。但最近它开始产生以下错误。
xmlhttprequest无法加载no' access-control-allow-origin'
所以在研究中我发现这与CORS有关。其中很少人建议使用http.jsonp而不是http.get。但是fixer.io并不支持http.jsonp格式。
很少有人建议在config.js中使用以下标题,但没有帮助。
delete $httpProvider.defaults.headers.common['X-Requested-With']
许多人说这是服务器端的事情,添加标题也无济于事。有没有办法从我这边解决这个问题?或者,如果我切换到支持http.jsonp格式的其他提供商,您认为它会解决此问题吗?
修改
答案 0 :(得分:1)
试试这个。
<!DOCTYPE html>
<html>
<script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.js"></script>
<body>
<div ng-app="myApp" ng-controller="MyController">
{{records[0]}}
<div ng-repeat="rate in rates">
{{rate.currency}}--{{rate.rate}}<br>
</div>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('MyController', function ($scope,$http)
{
var url = 'http://api.fixer.io/latest?base=USD&callback=JSON_CALLBACK';
$http.jsonp(url)
.success(function(data)
{
$scope.rates=[];
for(var key in data.rates)
{
var obj = {
"currency":'',
"rate":''
};
var value = data.rates[key];
obj.currency=key;
obj.rate=value;
$scope.rates.push(obj);
}
});
});
</script>
</body>
</html>