我正在尝试使用angular来使用Flickr API,但每当我尝试发出请求时,我都会收到此错误。我看过网上但似乎无法得到一个不错的答案
XMLHttpRequest无法加载https://api.flickr.com/services/feeds/photos_public.gne?tags=potato&tagmode=all&format=json。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许原点“http://localhost:8000”访问。
以下是我的请求代码 - 我尝试使用angular 100%执行此操作,而不必运行服务器
FlickrController.$inject = ['$http']
function FlickrController($http){
var self = this
this.newPhoto = {}
// this.photos = Photo.query();
this.getPhoto = function(){
console.log('gettinghere')
$http
.get('https://api.flickr.com/services/feeds/photos_public.gne?tags=potato&tagmode=all&format=json')
.then(function(response){
var photoData = response.data
console.log(photoData)
self.addPhoto(photoData)
})
}
答案 0 :(得分:0)
这不是AngularJS的事情,而是一般的服务器通信。
必须从服务器发送Access-Control-Allow-Origin。请求由您的javascript应用程序执行。但是由于域名不同而且没有给出Access-Control-Allow-Origin,浏览器停止传递响应。
我不确定是否可以设置Flicker api来发送它。但是可以在您自己的服务器上执行端点,这会将您的请求发送到闪烁。因为正如我所说。只有浏览器停止了响应。
如果您没有任何后端(某些测试应用),您可以使用某种代理 - https://www.npmjs.com/package/proxy-middleware
然后你的api请求localhost:8000 / api /并且会有代理与原始的闪烁api通信。