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