2013-10-06 5 views
1

Я пытаюсь вызвать внешний API (Vimeo) из моего кода AngularJS, но все, что я верну - это 304 Not Modified. Моего код:

this.$scope.$safeApply(() => { 
    this.$http.jsonp('http://vimeo.com/api/v2/video/75532980.json?callback=?') 
     .success((r) => { 
      this.$log.info("Success: " + r); 
     }) 
     .error((e) => { 
      this.$log.info("Error: " + e); 
     }); 
}); 

Странное дело, когда я называю те же URL из стельки, кажется, все в порядке, и я получаю ответ 200 с правильным JSON.

+0

Есть взгляд на это ТАК: http://stackoverflow.com/questions/15956768/angularjs-is-caching-jsonp-by-default – jpmorin

ответ

2

Вот рабочий plunker: http://plnkr.co/edit/PZ7rQXb3guREqGFsodHX?p=preview

Я принял ответ от: AngularJS is caching JSONP by default

Вы добавить метку к вашему запросу, так что не кэшируются угловой. Кроме того, я изменил значение вашего обратного вызова на JSON_CALLBACK в соответствии с документом (AngularJS $http).

Относительный или абсолютный URL с указанием адресата запроса. Должна содержать строку JSON_CALLBACK.

$http.jsonp('http://vimeo.com/api/v2/video/75532980.json?callback=JSON_CALLBACK&_=' + (new Date().getTime())) 
    .success(function (r) { 
     $log.info("Success: " + r); 
    }) 
    .error(function (e) { 
     $log.info("Error: " + e); 
    }); 
+0

Спасибо большое, это сработало! – Arnstein

Смежные вопросы