Обработчик успеха jQuery AJAX не работает должным образом - PullRequest
1 голос
/ 26 января 2011

У меня очень странная проблема с jQuery и IE. Я использую jQuery 1.4.4 с IE8. Я пытаюсь AJAX-вызов с:

$.ajax({
        url: '/events/do_something',
        dataType: 'json',
        data : params,
        beforeSend : function() {
            setPageStateLoading(true);
        },
        success : function(data){
            doSomethingElse(data, false);
        },
        error : function(XMLHttpRequest) {
            openErrorDialog(XMLHttpRequest.responseText);
        },
        complete : function(XMLHttpRequest, textStatus) {
            setPageStateLoading(false);
        }
    });

Хотя запрос выполнен успешно, обработчик ошибок вызывается из-за ошибки разбора. В возвращенном JSON нет ничего плохого (он отлично работает в Firefox), проблема в строке 6229 в jQuery:

var ct = xhr.getResponseHeader("content-type") || "",

Ошибка «Объект не поддерживает это свойство или метод» и ошибка синтаксического анализа.

Сейчас я использую полный обработчик с оператором if в качестве обходного пути, но на самом деле это не очень хорошая идея. Любые идеи о том, как это исправить правильно?

1 Ответ

1 голос
/ 26 января 2011

Вы пытались оставить dataType не установленным, а затем использовать jQuery .parseJSON () (http://api.jquery.com/jQuery.parseJSON/)? Таким образом, вы сможете увидеть, есть ли в ответе ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...