我正在尝试使用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‘。
以下是我的请求代码-我正在尝试100%使用angular完成此任务,而不必运行服务器
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)
})
}
发布于 2015-10-27 22:07:31
这不是AngularJS的问题,而是服务器通信的问题。
必须从服务器发送访问控制允许源。请求由您的javascript应用程序执行。但是浏览器停止传递响应,因为不同的域,并且没有提供访问控制允许来源。
我不确定是否可以将Flicker api设置为发送此消息。但是可以在您自己的服务器上执行端点,这会将您的请求发送到flicker。因为就像我说的。只有浏览器停止了响应。
如果您没有任何后端(一些测试应用程序),您可以使用某种proxy - https://www.npmjs.com/package/proxy-middleware
然后你的api会请求localhost:8000/ api /,并且会有代理与原始的flicker api进行通信。
https://stackoverflow.com/questions/33370056
复制相似问题