это не работает, потому что имя вашей функции обратного вызова игнорирует то, которое Request.JSONP вместо этого отправляет и возвращает jsonFeed.
http://mootools.net/docs/more/Request/Request.JSONP
callbackKey
(строка: значения по умолчанию)для обратного вызова) ключ в URL, который сервер использует для переноса результатов JSON.Так, например, если вы использовали callbackKey: 'callback', то сервер ожидает что-то вроде http: //..../? Q = search + term & callback = myFunction ;Это должно быть определено правильно.
вот пример класса, который я написал, который получает материал из flickr - кто использует пользовательский ключ обратного вызова - это нормально.http://fragged.org/mootools-flickr-api-class-via-request-jsonp_1042.html (ps jsfiddle может работать медленно, пятница, 13-е!)
Другое дело, если удаленный конец ПРОДОЛЖАЕТ работать с вами и отказывается отправлять данные в правильно упакованном форматеНапример:
Request.JSONP.request_map.request_0({data})
, тогда вам нужно убедиться, что
this.jsonFeed = function(data) {
console.log(data);
};
, где это глобальный объект (например, окно) - вы не можете охватыватьэто так осторожно, где функция определена.
если сделать последнее, то jsonFeed возьмет на себя функцию обратного вызова при неполной функции.
это можно сделать еще одним способом, который отобразит собственную функцию обратного вызова, определенную классом, и экспортирует ее в ту, которая нравится вашему удаленному хосту:
onRequest: function() {
var lastCallback;
Object.each(Request.JSONP.request_map, function(el) {
lastCallback = el;
});
window.jsonFlickrApi = lastCallback;
},
onComplete: function(data) {
...
}