Bloomapi, XMLHttpRequest не может загрузиться

В настоящее время я использую API на www.bloomapi.com с 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);
});

Большое спасибо!


person qbit    schedule 20.05.2015    source источник


Ответы (1)


Судя по ошибке, похоже, что AngularJS по умолчанию использует CORS для $resource запросов. BloomAPI в настоящее время не поддерживает CORS, но поддерживает JSONP.

Я никогда раньше не делал JSONP в AngularJS, но нашел несколько многообещающих ресурсов, таких как http://www.bennadel.com/blog/2610-using-jsonp-with-resource-in-angularjs.htm, которые могут помочь решить проблему.

Дайте мне знать, если это по какой-то причине не работает с вашим сценарием, и я буду рад рассмотреть реализацию CORS в BloomAPI как можно раньше.

person Michael Wasser    schedule 20.05.2015