我正在使用 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/