簡體   English   中英

讀取HTTP標頭以使用jQuery檢查404,而不執行ajax請求

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM