это называется callbackKey
для JSONP. читать документ .
Вот класс Flickr, который расширяет JSONP, который я написал (изменить API):
// the class
Request.flickr = new Class({
Extends: Request.JSONP,
options: {
callbackKey: "jsoncallback",
url: "http://www.flickr.com/services/rest/?",
log: true
},
initialize: function(params, options) {
this.parent(options);
this.options.url = this.options.url + Object.toQueryString(params);
},
success: function(data, script) {
this.parent(data, script);
},
imageURL: function(obj) {
return "http://farm{farm}.static.flickr.com/{server}/{id}_{secret}.jpg".substitute(obj);
}
});
// example on how to use
new Request.flickr({
format: 'json',
api_key: "e7df6c74d2545f55414423463bf99723", // your api here
per_page: 4,
tags: "mountains",
method: "flickr.photos.search"
}, {
onSuccess: function(data) {
target = document.id("action");
var self = this;
data.photos.photo.each(function(el) {
new Asset.image(self.imageURL(el), {
onload: function() {
this.inject(target);
}
});
});
}
}).send();
Чтобы полностью переопределить обратный вызов и передать внешнюю функцию (должна быть глобальной):
window.foo = function(data) {
console.log(data);
};
Request.flickr = new Class({
Extends: Request.JSONP,
options: {
url: "http://www.flickr.com/services/rest/?jsoncallback=foo&",
log: true
},
initialize: function(params, options) {
this.parent(options);
this.options.url = this.options.url + Object.toQueryString(params);
},
success: function(data, script) {
this.parent(data, script);
},
imageURL: function(obj) {
return "http://farm{farm}.static.flickr.com/{server}/{id}_{secret}.jpg".substitute(obj);
}
});
// example on how to use
new Request.flickr({
format: 'json',
api_key: "e7df6c74d2545f55414423463bf99723",
// your api here
per_page: 4,
tags: "mountains",
method: "flickr.photos.search"
}).send();
приведенный выше код запустит функцию foo, передав ей объект JSON. http://jsfiddle.net/dimitar/DUtff/