2015-11-30 95 views
0

的監聽請求頭我需要登錄通過所有的XMLHttpRequest發送到服務器的自定義請求頭。有很多方法可以攔截請求並獲取url參數,但找不到任何描述請求頭。這甚至有可能嗎?的XMLHttpRequest的JavaScript

任何方法是值得歡迎的JavaScript和jQuery等。

編輯:我不允許更改使得AJAX查詢任何腳本。我需要通過添加另一個靜態腳本來攔截查詢。

+1

可以包裝'setRequestHeader',用於設置所有自定義標頭 – dandavis

回答

0

我認爲存在的jQuery結合的文件,這樣ajaxComplete()一些事件,所以我覺得你找的是ajaxSend(),我希望是有用看到的片段:

$(document).ajaxSend(function(event, xhr, settings) { 
    //this will show the url of the request 
    console.log("URL", settings.url) 
}) 

設置參數你可以得到其他屬性。

1

這是服務人員做到最好。攔截所有請求

self.addEventListener('fetch', function(event) { 
    console.log('Handling request for', event.request.url); 

    // Do whatever you want with request headers 
    event.request.headers.forEach(function(header){ 

    }); 
}); 

唯一的缺點是,它不支持似地。與本站有權在HTTPS(如果它的本地主機服務的工人僅適用於HTTPS和HTTP)這正是該功能看起來像

但我可以向你保證,你能做到這一點更容易jQuery ajaxStart

+0

要使這個工作整個頁面必須在https?這個功能是否支持許多瀏覽器? – user3155036

+0

Yepp,服務人員只能使用https和http-on-localhost。但今天,默認使用https非常令人鼓舞 – Endless