Fixer api报告 - 无法加载no' access-control-allow-origin'

时间:2015-09-28 10:05:03

标签: angularjs api cors

我在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格式的其他提供商,您认为它会解决此问题吗?

修改

API URL

1 个答案:

答案 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>