Новый сайт по новому адресу ignatiev.su - Игнатьев Иван
Если вы что-то искали и не нашли, или у вас возникли вопросы, пишите на e-mail: ivan@ignatiev.su

Новый блог по адресу Блог об ИТ и программировании на русском. Если вы хотите, чтобы я обновил, какие-либо статьи, пожалуйста напишите мне на email.


Как поменять имя callback-функции при запросе JSONP в jQuery

Если мы вспомним заметку jQuery и JSON, в чем подвох?, там я использовал функцию $.getJSON(), в которой в URL задавался параметр callback=? и вместо “?” jQuery подставляла свое значение имени callback-функции (как правило “jsonp<случайное число>“), но иногда нужно указать собственное имя функции, тогда необходимо воспользоваться параметром jsonpCallback в $.ajaxSetup:

  $.ajaxSetup({
    dataType: 'jsonp',
    josnpCallback: 'my_jsonp_name' // любое придуманное вами имя, латинскими буквами, цифрами и _
  });
 
  $.getJSON('http://api.imgfiles.ru/session_information/?callback=?', function(data) { 
  //... 
  });

Теперь после $.ajaxSetup во всех вызовах $.getJSON вместо “?” будет подставлено значение “my_jsonp_name“.

Так же есть альтернативный вариант, использовать $.ajax:

$.ajax({
  url: 'http://api.imgfiles.ru/session_information/', // Внимание! тут URL без параметра callback
  dataType: 'jsonp',
  jsonp: 'cb', // имя параметра с именем callback-функцией, по умолчанию "callback"
  jsonpCallback: 'my_name', // имя callback-функции
  success: function(data) {
      // ...
  }
});

Tags: , ,

RSS 2.0 - Узнай первым, о обновлениях в комментариях к этой записи

2 комментария

  1. Статья очень понравилась, ждем продолжения

  2. Спасибо вам огромное, это как раз то что я искал!

Оставить комментарий