![](/img/trans.png)
[英]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.