【发布时间】:2018-10-19 22:46:34
【问题描述】:
我使用 JavaScript 为 Flickr 照片搜索 API 创建了一个演示。 现在我将它转换为 AngularJs。 我在互联网上搜索并找到以下配置。
配置:
myApp.config(function($httpProvider) {
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
});
服务:
myApp.service('dataService', function($http) {
delete $http.defaults.headers.common['X-Requested-With'];
this.flickrPhotoSearch = function() {
return $http({
method: 'GET',
url: 'http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=3f807259749363aaa29c76012fa93945&tags=india&format=json&callback=?',
dataType: 'jsonp',
headers: {'Authorization': 'Token token=xxxxYYYYZzzz'}
});
}
});
控制器:
myApp.controller('flickrController', function($scope, dataService) {
$scope.data = null;
dataService.flickrPhotoSearch().then(function(dataResponse) {
$scope.data = dataResponse;
console.log($scope.data);
});
});
但我仍然遇到同样的错误。 以下是我尝试的一些链接:
XMLHttpRequest cannot load URL. Origin not allowed by Access-Control-Allow-Origin
【问题讨论】:
-
你必须从你的代理请求数据,你还是直接从 flickr 请求数据。
-
@quentin 感谢您的快速回复。请给我一个演示。
-
您只需将 URL 从 flickr.com 更改为您的代理的 URL
-
但是我要怎么称呼 flickr?因为我需要来自 flickr 的图片。
-
客户端调用代理。代理调用 flickr。这就是代理的意思。 (您的代理代码……不是代理,它是用于从静态文件提供 JSON 和 JSONP 的 Web 服务器)。
标签: javascript angularjs xmlhttprequest cors