Ajax验证非空页面的响应数据

时间:2014-04-06 13:21:38

标签: javascript php jquery ajax

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

  • 状态代码正常

    回复标题

  • HTTP / 1.1 200确定
  • Pragma:no-cache
  • 刷新:1; URL = http://balbla.com/page.html
  • 连接:关闭
  • 内容类型:text / html

然后在Response选项卡中 - &gt; <HTML></HTML>

我的问题是如何在成功功能中验证数据不是一个空的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')  ;  }
});

由于

2 个答案:

答案 0 :(得分:1)

这样做:

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);
    });
}
}

答案 1 :(得分:1)

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