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",
и это должно быть хорошо.