AJAX и IE - невозможно получить ошибку свойства

Я получаю следующую ошибку. Unable to get property 'replace of undefined or null reference в строке var ajax_html = $(xml).find("#search-ajax-content").html(); при использовании AJAX в IE (тестирование в IE11). Этот код отлично работает в других браузерах (Chrome, FF и Safari).

Кто-нибудь когда-либо сталкивался с этой проблемой перед использованием AJAX? Я не совсем уверен, как решить эту проблему. Любая помощь приветствуется! Спасибо!!

    $.ajax({
            type:"GET",
            dataType:"xml",
            url:"/search-ajax/" + window.location.search + "&pagination=" + page,
            success: function(data) {
                var xml = data;

                if (page == 1)
                {
                    $("#wait-element-container").remove();


                    // Issue is happening here only on IE!
                    var ajax_html = $(xml).find("#search-ajax-content").html();
                    $("#postload-target").append(ajax_html);
                }

            }
        });

Ответы

Ответ 1

jQuery может анализировать текст и запрашивать как HTML (до тех пор, пока текст действителен html). Ты пытался:

$.ajax({
            type:"GET",
            dataType:"text",
            url:"/search-ajax/" + window.location.search + "&pagination=" + page,
            success: function(data) {
                var xml = data;

                if (page == 1)
                {
                    $("#wait-element-container").remove();


                    // Issue is happening here only on IE!
                    var ajax_html = $(xml).find("#search-ajax-content").html();
                    $("#postload-target").append(ajax_html);
                }

            }
        });

Ответ 2

Я помню эту проблему (но), когда работал над AJAX с ASP.NET. Я не знаю, поможет ли это, но я все равно отправлю его. Обратите внимание на "D" в XML - response синтаксического анализа. Это находится в файле Javascript:

function ajaxCall() {
    $.ajax({
        /* Code ommited for brevity */
        ...
        success: 'myFunction_OnSuccess',
        ...
    });
}

function myFunction_OnSuccess(response) {
    /* On NetFramework 2.0 and older'*/
    /*var xmlDoc = $.parseXML(response);*/

    /*For NetFramework 3.5+'*/
    var xmlDoc = $.parseXML(response.d);
    var xml = $(xmlDoc);

    var msg = xml.find("msg").text();
}

Так я обрабатываю ответы Ajax onSuccess.

Ответ 3

Похоже, что у вас есть проблема только с IE, потому что заданный вами тип данных:

dataType:$.browser.msie ? "text" : "xml",

измените его на

dataType: "xml",

и это должно быть хорошо.