[英]How to add a custom HTTP header to ajax request with js or jQuery
[英]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.