首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ajax验证不是空页的响应数据

Ajax验证不是空页的响应数据
EN

Stack Overflow用户
提问于 2014-04-06 13:21:37
回答 2查看 745关注 0票数 2

我使用Ajax填充页面(服务器端),然后获取内容并在主窗口中显示。我对Ajax没有问题,只是很多时候回复数据是一个空页面<html></html>

当我签入控制台->Network->page.html时,

  • 状态代码是可以的

响应头

  • HTTP/1.1 200正常
  • Pragma:无缓存
  • 刷新: 1;URL=http://balbla.com/page.html
  • 连接:关闭
  • 内容-类型: text/html

然后在Response > <HTML></HTML>

我的问题是,在运行下面的命令之前,如何在成功函数中验证data不是一个空的html页面,否则,我将得到一个空白页。

代码语言:javascript
复制
$.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')  ;  }
});

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-06 13:26:22

您可以从响应字符串中去掉html标记,然后计算它的长度。

HTML条函数来自:Strip HTML from Text JavaScript

代码语言:javascript
复制
function strip(html)
{
   var tmp = document.createElement("DIV");
   tmp.innerHTML = html;
   return tmp.textContent || tmp.innerText || "";
}

然后在ajax函数中:

代码语言:javascript
复制
success: function(data) {
if(strip(data).length > 0) {
   // content is not empty
}
票数 1
EN

Stack Overflow用户

发布于 2014-04-06 13:24:33

这样做:

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22894602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档