2013-10-06 47 views
1

我一直在嘗試從我的AngularJS代碼中調用外部API(Vimeo),但是我得到的所有內容都是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提琴手,似乎一切都確定,我得到了正確的JSON 200響應。

+0

在有看看這個SO: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

您添加時間戳到您的查詢,使其不被角緩存。另外,根據文檔(AngularJS $http),我將您的回調值修改爲JSON_CALLBACK。

指定請求目標的相對或絕對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