Javascript 读取HTTP头以使用jQuery检查404,而不执行ajax请求
有没有一种方法可以在不执行.ajax请求和读取xhr.status的情况下使用jQuery读取HTTP头 与流行的Google Analytics插件类似,我希望在我的网站上跟踪404。不幸的是,我继承了一个遗留系统,404没有唯一的URLJavascript 读取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页面,该
是否可以使用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是否为有效页面。如果不是,记录推荐人。