2

我目前正在使用 www.bloomapi.com 的 API 和 AngularJS 并不断收到此拒绝:

XMLHttpRequest 无法加载 http://www.bloomapi.com/api/search?limit=1&offset=0&key1=npi&op1=eq&value1=1861733537。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问源“ http://localhost ”。

我不确定问题是否是 BloomAPI 特定的(例如,如果我需要 API 密钥或其他东西),或者我的 API 调用是否有问题。

这是我的代码...

工厂:

.factory('ProviderService', ['$resource', function($resource) {
  return $resource('http://www.bloomapi.com/api/search?limit=1&offset=0&key1=npi&op1=eq&value1=:npi',
    {npi:'@npi'}
  )}
])  

控制器:

ProviderService.get({npi:'1861733537'}, function(res) {
  $scope.providerNPI = res.id;
  $scope.providerName = res.result.last_name;
  console.log($scope.providerName);
});

非常感谢!

4

1 回答 1

1

根据错误,AngularJS 似乎默认使用 CORS 来处理$resource请求。BloomAPI 目前不支持 CORS,但支持 JSONP。

我以前从未在 AngularJS 中做过 JSONP,但发现了一些有前途的资源,例如http://www.bennadel.com/blog/2610-using-jsonp-with-resource-in-angularjs.htm可能有助于解决问题。

如果由于某种原因这不适用于您的场景,请告诉我,我很乐意尽快看看在 BloomAPI 中实现 CORS。

于 2015-05-20T15:45:13.640 回答