Angularjs tumblrapi$httpget
我遇到了Tumblr和Angular的API问题,我不太清楚。当使用$http试图从某个博客获取信息时,它会保留“飞行前的响应无效”。我想我在看这段代码时有点眼花了。有人看看这个,告诉我我做错了什么吗?谢谢Angularjs tumblrapi$httpget,angularjs,get,tumblr,preflight,angularjs-1.6,Angularjs,Get,Tumblr,Preflight,Angularjs 1.6,我遇到了Tumblr和Angular的API问题,我不太清楚。当使用$http试图从某个博客获取信息时,它会保留“飞行前的响应无效”。我想我在看这段代码时有点眼花了。有人看看这个,告诉我我做错了什么吗?谢谢 $scope.tumblrKey = 'mldv2B4xUD5roLX8XfbYdgJhzlgLxfm8mBRuKQhBxXsUFLiqEx'; $scope.tumblrUrl = 'http://api.tumblr.com/v2/blog/whileoutriding.tumblr.c
$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跨源资源共享。您尝试使用的第三方API应该允许来自您站点的请求。因为它似乎不允许您这样做,飞行前请求基本上检查您是否可以对该API进行GET调用,但失败了。如本文所述,有多种方法可以修复它 您可以更改
$http
请求,如下所示:
$http({
method: 'jsonp',
dataType: 'json',
headers: {
'Authorization': $scope.tumblrKey
},
params: {
format: 'jsonp',
callback: 'JSON_CALLBACK'
},
url: $scope.tumblrUrl + $scope.tumblrKey
})
使用工作代码
这似乎很有效。祝你好运 我在plunkr中运行代码,得到一个错误,清楚地描述了问题
请求的资源上不存在“Access Control Allow Origin”头。
此注释中有24个答案:使用AngularJS V1.6,您不能再在JSONP请求中使用JSON_回调占位符。有关更多信息,请参阅。有趣的是,我没有意识到这一点。非常感谢。这就解释了为什么他的例子不适合我,直到我把它完全复制下来,然后把它放下。在任何情况下,这都能让我朝着正确的方向前进。非常感谢。