我正在使用jQuery(在Wordpress中)进行非常简单的ajax调用 - 使用GET获取页面内容,然后将响应读入jQuery对象。这在除IE8之外的每个浏览器中都能正常工作(不关心IE6 / 7。相关代码与我以前网站中使用的相同,所有这些都在IE8中工作。这是代码:
var ajax_params = {
url: relative_url,
type: 'GET',
dataType: 'html',
data: {},
success: function(data, textStatus, xhr) {
// create jquery element from html string
data = $('<div/>').append(data);
pre($(data).find('#content'));
pre($('#content'));
plugin.replace_content(data, relative_url);
},
};
plugin.ajax_call = $.ajax(ajax_params);
pre()函数只是对console.log的调用,我在IE8中使用firebug lite进行调试。我已确定ajax调用正在运行,并且所请求页面的HTML已在data
变量中成功返回。它挂在data = $('<div/>').append(data)
上,结果是一个空div。正如我所说,这个确切的代码适用于其他网站,所以我无法解释这一点。我已经将jQuery版本降级到1.8.3以匹配其他网站上的内容无济于事。
有什么想法吗?
答案 0 :(得分:3)
我们发现了问题:这是一个内存问题,因为ajax响应太大而IE无法解析。这可以解释为什么其他网站上完全相同的方法有效。我们通过尽可能多地从响应html中删除来修复它。另一种解决方案是将响应数据拆分为块并发出多个ajax请求。
答案 1 :(得分:0)