2013-07-02 6 views
0

Я пытаюсь получить JSONP от API Flickr для работы с:Как заставить JSONP работать с jQuery?

http://jsfiddle.net/SRc98/

$.getScript('http://api.flickr.com/services/feeds/photos_public.gne?format=json&tags=cats', function(data, textStatus, jqxhr) { 
    alert(data); 
}); 

Оповещение дает undefined и консоль говорит:

Uncaught ReferenceError: jsonFlickrFeed is not defined 

Есть ли что-то не так с ответ Flickr API или есть способ заставить это работать в конце концов?

http://api.flickr.com/services/feeds/photos_public.gne?format=json&tags=cats

+0

Как ваш вопрос относится к JSONP (вместо JSON) .. см. Мой ответ .. это может помочь – harrybvp

ответ

3

Попробуйте использовать jQuery.getJSON() вместо как:

$.getJSON('http://api.flickr.com/services/feeds/photos_public.gne?format=json&tags=cats&jsoncallback=?', function(data, textStatus, jqxhr) { 
    alert(data); 
}); 

Вы можете увидеть Online API Documentation Demo

EDIT:

Живая демо добавил здесь

// Set the flicker api url here 
 
var flickerAPI = "http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?"; 
 

 
// Set the tag display options 
 
var options = { 
 
    tags: "cats", 
 
    format: "json" 
 
}; 
 

 
// Get json format data using $.getJSON() 
 
$.getJSON(flickerAPI, options) 
 
    .done(OnApiCallSuccess) 
 
    .fail(OnApiCallError); 
 

 
// Api call success callback function 
 
function OnApiCallSuccess(data) { 
 
    $.each(data.items, function(i, item) { 
 
    $("<img>").attr("src", item.media.m).appendTo("#images"); 
 

 
    // Load only the first 6 images for demo 
 
    if (i === 6) return false; 
 
    }); 
 
} 
 

 
// Api call error callback function 
 
function OnApiCallError(jqxhr, textStatus, error) { 
 
    var err = textStatus + ", " + error; 
 
    console.log("Request Failed: " + err); 
 
}
img { 
 
    height: 100px; 
 
    float: left; 
 
    padding: 0 10px 10px 0; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script> 
 
<div id="images"></div>

+0

См. Это http://jsfiddle.net/SRc98/2/ –

0

параметр getScript жёстко данных JQuery к нулю, и автоматически оценивает извлеченный сценарий.
Я думаю, что документация неверна. Хорошо, что вы, вероятно, просто хотели оценить сценарий в любом случае, и вам вообще не нужен обратный вызов.

Для вашего случая: -
сценария вашего полученный из URL действительно получать оценен, но в настоящее время не существует определения function jsonFlickrFeed() .so, поэтому показана неопределенная ошибка. Вам нужно включить некоторый JS-файл, который имеет свое определение.

Смежные вопросы