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);
});

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

1 ответ

Решение

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

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

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

Другие вопросы по тегам