javascript - Ajax 验证响应数据不是空页

标签 javascript php jquery ajax

我正在使用 Ajax 填充页面(服务器端),然后获取内容并显示在主窗口中。我的 Ajax 没有问题,只是很多时候响应数据是空页 <html></html> .
当我检查控制台 ->Network->page.html 时,

  • 状态代码正常

    响应 header

  • HTTP/1.1 200 正常
  • 编译指示:无缓存
  • 刷新:1;网址=http://balbla.com/page.html
  • 连接:关闭
  • 内容类型:text/html

然后在“响应”选项卡中 -> <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')  ;  }
});

谢谢

最佳答案

您可以从响应字符串中去除 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
}

关于javascript - Ajax 验证响应数据不是空页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22894602/

相关文章:

javascript - IE 10 和 IE 11 的解析日期问题

javascript - PHP可以设置cookie函数,覆盖用JQuery cookie创建的cookie值吗

php - 在 PHP/MySQL 中使用 Week(Date) 时,如何将一周的第一天设置为星期一?

javascript - 我怎样才能使这个下拉菜单与其父菜单出现在同一行?

javascript - 使用Jquery选择相同类型元素中的元素

javascript - ngGrid 多选取消当前选择

javascript - CKEditor 5 注册多个上传适配器

javascript - 我如何告诉 Closure javascript 编译器不要混淆 webkitAudioContext 的方法名称?

php - MySQL 根据附加参数 PDO 返回行

php - 使用预定值(数据库)通过单击动态创建 <div> 或 <li> 项目