Ajax 验证不是空页的响应数据
Ajax validate response data that is not an empty page
我正在使用Ajax填充页面(服务器端),然后获取内容并显示在主窗口中。我对 Ajax 没有问题,只是很多时候响应数据是一个空页面<html></html>
.
当我签入控制台 ->网络>页面.html 时,
-
状态代码为"正常"
响应标头
- HTTP/1.1 200 OK
- 杂注:无缓存
- 刷新: 1;URL=http://balbla.com/page.html
- 连接:关闭
- 内容类型:文本/html
然后在响应选项卡中 -> <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') ; }
});
谢谢
您可以从响应字符串中删除 html 标记,然后计算其长度。
HTML标签条带功能取自: 从文本 JavaScript 中剥离 HTML
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
}
这样做:
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);
});
}
}
相关文章:
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 访问令牌和响应数据
- 我应该如何将响应数据保存在对象(json)中以获得更好的操作和性能
- 如何在UI自动化中捕获响应数据
- 基于类的单击事件在10行之后不响应-数据表
- 从 HTML 页面中的第三方响应数据中获取单个值
- 如何从xhrpost函数中检索响应数据并将该对象存储在dojo/store中
- 可以'无法使用Oauth2/BaseCamp API获取响应数据
- jQuery$.ajax方法.成功:使用响应数据的函数
- $('body').html()从来自Firefox中$jQuery.post的响应数据中给出了空白内容
- 如何在我的高图表中传递 Ajax 响应数据
- 将 Ajax 响应数据加载到挖空数组中
- JavaScript/angular - 无法获取确切的返回响应数据
- 如何使jQuery JSON请求并使用响应数据来更改html元素值
- 将数据绑定到 kendo 下拉列表时,如何将 ajax 响应数据获取到变量
- Dojo 筛选选择 - 完整的 JSON 响应数据不可见
- 调用特定函数时无法加载响应数据
- html 响应数据 ID 不能在 Facebook API 调用中用作字符串
- 访问Ajax响应数据
- Angular$http-在接收响应数据时对其进行处理