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

奇怪的是,当我从 fiddler 调用相同的 URL 时,一切似乎都很好,并且我得到了 200 响应以及正确的 JSON。

4

1 回答 1

2

这是一个工作 plunker:http ://plnkr.co/edit/PZ7rQXb3guREqGFsodHX?p=preview

我的答案来自:AngularJS 默认缓存 JSONP

您将时间戳添加到查询中,因此它不会被角度缓存。另外,我根据文档( 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);
    });
于 2013-10-06T20:13:58.420 回答