Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 读取HTTP头以使用jQuery检查404,而不执行ajax请求_Javascript_Jquery_Http_Google Analytics_Http Status Code 404 - Fatal编程技术网

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

Javascript 读取HTTP头以使用jQuery检查404,而不执行ajax请求,javascript,jquery,http,google-analytics,http-status-code-404,Javascript,Jquery,Http,Google Analytics,Http Status Code 404,有没有一种方法可以在不执行.ajax请求和读取xhr.status的情况下使用jQuery读取HTTP头 与流行的Google Analytics插件类似,我希望在我的网站上跟踪404。不幸的是,我继承了一个遗留系统,404没有唯一的URL 是否可以使用jQuery读取HTTP头?我认为这是不可能的-它们没有暴露于JavaScript。AJAX请求显然是一种解决方法——不知道您为什么反对这种做法 关于这个问题的更多信息:如果您有权访问404错误页面,您可以将javascript注入404页面,该

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

与流行的Google Analytics插件类似,我希望在我的网站上跟踪404。不幸的是,我继承了一个遗留系统,404没有唯一的URL


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

我认为这是不可能的-它们没有暴露于JavaScript。AJAX请求显然是一种解决方法——不知道您为什么反对这种做法


关于这个问题的更多信息:

如果您有权访问404错误页面,您可以将javascript注入404页面,该页面可以通过ajax向服务器发送页面详细信息,如url、时间等[但如果它们在服务器日志中,则没有意义]。但是,可以利用此脚本。

您可以在jQuery中执行类似的操作:

if ( $('meta[content="Not Found - The URL you requested could not be found."]').length>0 ) {
    /* do something about it */
}
这假设传递引擎在页面的标题中放置了以下元标记。例如,Tumblr就是这样做的。您自己的系统可能会放置一个不同的元标记,或者您可以设计您的系统来交付一些这样的元标记

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

当然,所有这些真正要做的就是检查提供页面摘要的元标题。但您可以在自己的环境中利用该机制

在进行站点分析时,我必须单独记录错误

类似于@Octopus suggestion,我在404和500页中添加了一个meta标签

<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>

不幸的是,我不得不使用vanilla JS来实现这一点。

您想知道当前页面是否为404页面吗?或者你是想知道,如果一个不同的URL返回一个404页面,而没有实际请求该URL?如果我去www.ayrshiremins.com/abcdefg,这个页面不存在,那么我将在PHP中重定向到www.ayrshiremis.com/error。此错误页面用于404以外的其他目的,因此您建议我如何跟踪404?如果您可以看到abcdefg是否为有效页面,那么当您重定向到错误时,请检查referer是否为有效页面。如果不是,记录推荐人。