Javascript:有效地检查文本是否为完整的HTML文档

Javascript: Check whether text is a full HTML document efficiently

本文关键字:HTML 文档 是否 有效地 检查 文本 Javascript      更新时间:2023-09-26

我们的web应用程序将被部署为带有SSO的系统的一部分。会话超时后,我的xmlhttprequest被重定向到登录页面,我们无法控制这一点。

在每个AJAX响应处理程序上,我必须检查响应文本是否为完整的HTML页面。(HTML片段和JSON是有效的响应)

我必须承认我对客户端技术很陌生。我捕获完整的HTML页面,像这样:

if (data.search(/<html>/) > -1) { ... }

我认为这是非常低效的,依赖于我们的惯例,并且可能在将来引入微妙的错误。特别是考虑到整个web浏览器的主要目的是解析HTML…

请分享更多优雅的解决方案来识别文本作为完整的HTML文档!

(JQuery已经在项目中使用)

关闭编辑:

我在选择接受一个答案时有点为难,因为解决方案似乎是评论中两个加号想法的组合:

我将有单独的验证器JSON和HTML片段:

  • 我期待JSON,响应必须是JSON。

  • 我期待一个HTML片段(而不是一个完整的文档)的响应必须以结束标记结束(忽略空格),但不是(不区分大小写)。SSO登录页面必须结束于,我们将记录此"限制"

感谢大家的贡献!

如果您想检查响应是否为完整的HTML页面,您可能希望从末尾开始查看,不是吗?检查</html>是否在末端不会浪费太多性能。如果你不希望这样,请澄清你所说的完整的HTML页面是什么意思

您可以在响应中使用parseJson()。如果它返回一个对象,那就是json,否则就是html片段

responsetrial = $.parseJson(response);
if(typeof reponsetrial ==='object'){
//it's json
}else{
//it's html