我使用Ajax填充页面(服务器端),然后获取内容并在主窗口中显示。我对Ajax没有问题,只是很多时候回复数据是一个空页面<html></html>。
当我签入控制台->Network->page.html时,
响应头
然后在Response > <HTML></HTML>中
我的问题是,在运行下面的命令之前,如何在成功函数中验证data不是一个空的html页面,否则,我将得到一个空白页。
$.ajax({
type: "POST",
url: 'http://balbla.com/page.html',
data: 'country=' + user_country,
success: function(data) {
$pageWrap.fadeOut(1000, function() {
$('link[href="css/main.css"]').attr('href', $css);
$pageWrap.hide().html(data).fadeIn(500);
$.getScript($scripts);
});
},
error: function(xhr, textStatus, error) {
alert('Error Fecthing page') ; }
});谢谢
发布于 2014-04-06 13:26:22
您可以从响应字符串中去掉html标记,然后计算它的长度。
HTML条函数来自:Strip HTML from Text JavaScript
function strip(html)
{
var tmp = document.createElement("DIV");
tmp.innerHTML = html;
return tmp.textContent || tmp.innerText || "";
}然后在ajax函数中:
success: function(data) {
if(strip(data).length > 0) {
// content is not empty
}发布于 2014-04-06 13:24:33
这样做:
success: function(data) {
if(data !=="<HTML></HTML>"){
$pageWrap.fadeOut(1000, function() {
$('link[href="css/main.css"]').attr('href', $css);
$pageWrap.hide().html(data).fadeIn(500);
$.getScript($scripts);
});
}
}https://stackoverflow.com/questions/22894602
复制相似问题