XMLHttpRequest - flickr - 交叉原始标题

时间:2017-09-26 16:34:04

标签: javascript jquery ajax xmlhttprequest flickr

只是玩Flickr API,似乎无法成功地抓住任何东西。

我尝试使用下面的Jquery代码

var flickrURL = "https://api.flickr.com/services/feeds/photos_public.gne?format=jsoncallback=?";
var flickrOptions = {
    tags: "cats",
    format: "json"
}
var ajaxCallback = function(data){
    console.log(data);
};
$.getJSON(flickrURL, flickrOptions, ajaxCallback);

我也尝试了旧的香草路线

var xhr = new XMLHttpRequest();
xhr.open("GET", "https://api.flickr.com/services/feeds/photos_public.gne?format=jsoncallback=?");
xhr.onreadystatechange = function(data){
    console.log(data);
}
xhr.send();

我已经成功使用了AJAX / XMLrequest,但没有使用API​​。当香草失败的时候,我得到了“No' Access-Control-Allow-Origin'报头'我不明白,因为它本来是一个开放的饲料,而Jquery我得到的jsonFlickrFeed没有定义'。我发现这两个都非常令人费解

2 个答案:

答案 0 :(得分:1)

你只需做一些小改动

var flickrURL = 

"https://api.flickr.com/services/feeds/photos_public.gne?format=jsoncallback=?";

var flickrOptions = {
    tags: "cats",
    format: "json"
}

var jsonFlickrFeed = function(data){
    console.log(data);
};

$.getJSON(flickrURL, flickrOptions);

Flickr响应会查找 jsonFlickrFeed 函数,该函数未在您的案例中定义。

https://codepen.io/smtgohil/pen/ZXeYqB?editors=0010

您可以检查控制台的输出。

答案 1 :(得分:0)

Sumeets的回答是正确的,但我以为我会从后面发布我的香草解决方案。

var script = document.createElement('script');
script.src = "https://api.flickr.com/services/feeds/photos_public.gne?format=json";
document.getElementsByTagName('head')[0].appendChild(script);
var jsonFlickrFeed = function(data){
    console.log(data);
}