Tumblr API Angular $http GET

Tumblr API Angular $http GET

我 运行 陷入 Tumblr 的 API 问题,Angular 我不太明白。当使用 $http 尝试从某个博客获取信息时,它保持 'Response for preflight is invalid'。我想我在看这段代码时有点斜眼。有人会看看这个并告诉我我做错了什么吗?谢谢

$scope.tumblrKey = 'mldv2B4xUD5roLX8XfbYdgJhzlgLxfm8mBRuKQhBxXsUFLiqEx';
$scope.tumblrUrl = 'http://api.tumblr.com/v2/blog/whileoutriding.tumblr.com/info?api_key=';

$http({
  method: 'GET',
  headers: {
    'Authorization': $scope.tumblrKey
  },
  url: $scope.tumblrUrl + $scope.tumblrKey
}).then(function successCallback(response) {

    console.log('it worked', response);

  }, function errorCallback(response) {

    console.log('it did not work', response);

});

这个问题通常是因为 CORS-Cross Origin Resource Sharing 引起的。您尝试访问的第 3 方 API 应该允许来自您网站的请求。由于它似乎不允许您这样做,飞行前请求基本上检查您是否可以对 API 进行 GET 调用,但失败了。如 link 此处所述,有多种修复方法。

您可以像这样更改您的 $http 请求:

$http({
      method: 'jsonp',
      dataType: 'json',
      headers: {
        'Authorization': $scope.tumblrKey
      },
      params: {
        format: 'jsonp',
        callback: 'JSON_CALLBACK'
    },
      url: $scope.tumblrUrl + $scope.tumblrKey
    })

Here's a plunkr 工作代码

这似乎工作正常。祝你好运!