有没有办法在不执行.ajax
请求和读取的情况下使用 jQuery 读取 HTTP 标头xhr.status
?
与流行的 Google Analytics 插件 ( gaAddons ) 类似,我希望在我的网站上跟踪 404。不幸的是,我继承了旧系统,并且 404 没有唯一的 URL。
是否可以使用 jQuery 读取 HTTP 标头?
有没有办法在不执行.ajax
请求和读取的情况下使用 jQuery 读取 HTTP 标头xhr.status
?
与流行的 Google Analytics 插件 ( gaAddons ) 类似,我希望在我的网站上跟踪 404。不幸的是,我继承了旧系统,并且 404 没有唯一的 URL。
是否可以使用 jQuery 读取 HTTP 标头?
You might be able to do something like this in jQuery:
if ( $('meta[content="Not Found - The URL you requested could not be found."]').length>0 ) {
/* do something about it */
}
This assumes that the delivery engine has put the following meta tag in the header of the page. Tumblr does this, for example. Your own system may put a different meta tag or you could design your system to deliver some such meta tag.
<meta name="description" content="Not Found - The URL you requested could not be found." />
Of course, all this is really doing is checking the meta header which offers a page summary. But you could take advantage of the mechanism in your own environment.
在进行站点分析时,我必须单独记录错误。
与@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>
不幸的是,我不得不使用 vanilla JS 来实现这一点。
我认为这是不可能的——它们没有暴露于 JavaScript。AJAX 请求是明显的解决方法——不知道你为什么反对这个。
此问题中的更多信息:Accessing the web page's HTTP Headers in JavaScript
如果您可以访问 404 错误页面,则可以将 javascript 注入 404 页面,该页面可以通过 ajax 将页面详细信息(如 url、时间等)发送到服务器 [但如果它们在服务器日志中则意义不大]。但是,这个脚本可以被利用。