繁体   English   中英

读取HTTP标头以使用jQuery检查404,而不执行ajax请求

[英]read the HTTP header to check for 404 with jQuery without performing an ajax request

有没有一种方法可以在执行.ajax请求和读取xhr.status 情况下使用jQuery读取HTTP标头?

与流行的Google Analytics(分析)插件( gaAddons )类似,我希望在我的网站上跟踪404。 不幸的是,我继承了旧系统,并且404没有唯一的URL。

是否可以使用jQuery读取HTTP标头?

我认为这是不可能的-他们没有接触过JavaScript。 AJAX请求是显而易见的解决方法-不知道为什么反对这一点。

有关此问题的更多信息: 使用JavaScript访问网页的HTTP标头

如果您有权访问404错误页面,则可以将javascript注入404页面,该页面可以通过ajax将页面详细信息(例如url,时间等)通过ajax发送到服务器[但是,如果它们在服务器日志 ,则要少得多。 但是,此脚本可以被利用。

您可能可以在jQuery中执行以下操作:

if ( $('meta[content="Not Found - The URL you requested could not be found."]').length>0 ) {
    /* do something about it */
}

假设交付引擎已将以下meta标签放入页面的页眉中。 例如,Tumblr就是这样做的。 您自己的系统可能会放置其他元标记,或者您可以设计系统来提供一些此类元标记。

<meta name="description" content="Not Found - The URL you requested could not be found." />

当然,这实际上是在检查提供页面摘要的meta标头。 但是您可以在自己的环境中利用该机制。

在进行站点分析时,我不得不分别记录错误。

与@Octopus的建议类似,我在404页和500页中添加了元标记。

<meta name="error" content="404">

然后在客户端上,我检查该元标记是否存在,如下所示:

<script>
  meta = document.getElementsByTagName('meta');

  for (i=0; i< meta.length; i++) {

    if(meta[i].name == 'error'){
       alert('This page returned a ' + meta[i].content + ' error');   
    }

  }

</script>

不幸的是,我不得不使用香草JS来实现这一目标。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM