在IE上使用AJAX(在IE11中测试)时,我在第Unable to get property ‘replace’ of undefined or null reference
行上收到以下错误var ajax_html = $(xml).find("#search-ajax-content").html();
。此代码在其他浏览器(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);
}
}
});
答案 0 :(得分:5)
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);
}
}
});
答案 1 :(得分:0)
我记得在使用ASP.NET的AJAX时有这个问题(但是)。我不知道这是否有帮助,但无论如何我都会发布。请注意" 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
响应的方式。
答案 2 :(得分:0)
看起来您只对IE有问题,因为您设置了数据类型:
dataType:$.browser.msie ? "text" : "xml",
将其更改为
dataType: "xml",
它应该没问题。