2015-09-28 56 views
1

我使用的货币转换API fixer.io API在我angularjs网站。过去它运转良好。但在最近它开始产生下面的错误。定影液API报告 - 无法加载没有“访问控制允许来源”

的XMLHttpRequest无法加载没有“访问控制允许来源”

所以在研究中,我发现了这个事情做CORS。而且他们中的很少人建议使用http.jsonp而不是http.get。但fixer.io不支持http.jsonp格式。

少数也建议使用下面的头部,其中并没有帮助config.js。

delete $httpProvider.defaults.headers.common['X-Requested-With'] 

很多人说,这是一个服务器端的事情,并添加一个标题将无济于事。有没有办法从我身边解决这个问题?或者,如果我切换到支持http.jsonp格式的其他提供商,您认为它会解决此问题吗?

编辑

API URL

+0

可以如果可能的话给我提供API网址? –

+0

@PareshGami请看编辑.... – prdtuty

+0

我觉得这个API需要认证 –

回答

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> 
相关问题