Ответ jQuery dataFilter не определен - PullRequest
3 голосов
/ 28 февраля 2012

Я извлекаю данные из внешнего API через jsonp с помощью jQuery.ajax ().

это моя настройка ajax:

var ajax_options = {
    dataType: 'jsonp',
    jsonp: 'callback',
    url: url,
    data: parameters,
    success: function (response) {
        console.log(response); // works, prints the correct data
    },
    dataFilter: function (response, type) {
        console.log(response); // prints undefined
        console.log(type); //prints "jsonp"
    }
};
$.ajax(ajax_options);

Я хочу использовать функцию dataFilter для предварительной обработкимой ответ для обработки ошибок.Но аргумент ответа этой функции всегда неопределен.Однако в функции успеха я получаю правильные данные ответа.

Знаете ли вы, в чем может быть проблема?

1 Ответ

1 голос
/ 28 февраля 2012

Я могу убедиться, что эта проблема - боль в заднице.Что нужно сделать, это использовать $ .ajaxSetup ({});вместе с конвертерами:

$. ajaxSetup

http://api.jquery.com/jQuery.ajaxSetup/

Затем вам нужно будет использовать конвертерыдля обработки вашего dataType, dataFilters, обратных вызовов и анализа.

jQuery.Extensions - Конвертеры

http://api.jquery.com/extending-ajax/#Converters

Хотя у вас нет для использования конвертеров через $ .ajaxSetup -

$.ajax({ converters: 'params go here' });

Из-за сценария, с которым вы столкнулись, все данные, которые передаются как ваш jsonp, должны иметь этоКонвертер применяется к нему.Это должно предоставить вам более реалистичный контроль, основанный на вашем ожидаемом типе результата и потребностях.

...