我有一个通过 ajax 加载页面内容的功能,本质上是该功能,淡出当前内容,用 ajax 请求的结果替换内容,然后将内容淡入。
我的函数适用于大多数页面,但由于某种原因,在一个特定的请求中,正在加载内容,但没有调用 ajax 成功函数,这意味着内容已加载但仍处于隐藏状态。
这是我的代码,出于诊断目的,我已将 ajax 成功函数替换为警报,但这并未在同一页面上运行(但正在加载 ajax 内容):
var loadUrl=b_url+page;
if (History.enabled) {History.pushState({state:2}, page, "/"+page);}
window.name=page;
$.ajax({
cache: false,
async: false,
type: "POST",
url: loadUrl,
dataType: "html",
beforeSend: function() {
$('.contentarea').animate({
'opacity' : 0
}, 180, 'jswing', function(){
$('#mainc').hide(350, 'jswing');
});
},
success: function(response) {
$('#mainc').html(response);
alert('success')
},
failure: function(msg) {
alert('FAIL');
}
});
使用上面的代码,问题页面上不会显示成功或失败消息,但是如果我删除该行:
$('#mainc').html(response);
然后显示成功消息。正在加载的内容是一个 html 页面,正如我所说的,它似乎加载得很好(从某种意义上说,它在文档中)。每个页面栏都可以正常工作,因此我怀疑返回的内容存在一些问题(尽管它可以正常加载到文档中)-正在加载的内容是使用 codeigniter 由大量部分构建的,所以我想我的问题是如何我着手解决问题所在。我已经尝试在我的文档准备功能中添加它(阅读了类似的帖子),但它什么也没做:
$(document).ajaxError(function(e, xhr, settings, exception) {
alert('error in: ' + settings.url + ' \n'+'error:\n' + xhr.responseText );
});
一个想法我如何去找出问题所在?