2012-06-01 3 views
0

Я пытаюсь перехватить ответ ajax jsonp для фильтрации некоторых ответов. Мое предположение было, я мог бы сделать это с помощью пользовательских преобразователей. Но функция преобразователя никогда не запускается. Что мне не хватает?jQuery Преобразователи AJAX jsonp

var ajax_options = { 
    dataType: 'jsonp', 
    jsonp: 'callback', 
    url: url, 
    data: parameters, 
    success: success, 
    converters: { 
     "jsonp": function (raw) { 
      console.log(raw); 
      return raw; 
     } 
    } 
}; 
$.ajax(ajax_options); 

Спасибо, Макфарлейн

+1

Я не думаю, что это цель [преобразователей] (http://api.jquery.com/extending-ajax/#Converters) («Обобщенные обратные вызовы DataFilter, вызываемые в ответ на определенный тип данных, отличается от ожидаемого »). Почему бы просто не фильтровать внутри обратного вызова успеха? –

+0

, потому что я хочу перехватить ошибки, выброшенные моим API, и я не хочу проверять его в каждой функции обратного вызова, которую я пишу, но в целом. dataFilter не работает с jsonp. – McFarlane

+0

Если это какая-то помощь, я использую 'converters: {'text json': true}' для отправки json-объекта и возврата html-ответа –

ответ

0

Я теперь слушал здравый смысл и решил не злоупотреблять бедными преобразователями. Я создал решение с использованием $ .proxy() для перехвата каждого ответа JSONP, сохраняя правильный контекст в функции обратного вызова.

Поскольку мое решение сильно зависит от jQueryMX, я не буду вставлять свой источник здесь.

+0

В последние два дня я проводил все время, не задумываясь, как заставить его работать. Пожалуйста, помогите мне понять, как это можно сделать? Пожалуйста помоги! Заранее спасибо – neoDev

+0

Важно, что мне это действительно нужно – neoDev

0

С docs, преобразователи:

Карта преобразователей DATATYPE-на-DATATYPE. Каждое значение преобразователя представляет собой функцию , которая возвращает преобразованное значение ответа.

Следовательно, он используется для преобразования из одного типа данных в другой.

+0

, так как я могу его использовать? Я хочу преобразовать ответ, прежде чем возвращать его функции обратного вызова – McFarlane

+0

Это зависит от того, к чему вы хотите конвертировать. –

+0

не могу ли я «неправильно использовать» преобразователи, чтобы вообще фильтровать исходный ответ api? Я не вижу другого способа фильтрации ответов jsonp. – McFarlane

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

  • Нет связанных вопросов^_^