2012-12-04 29 views
6

我正在處理互聯網上的一些mp3鏈接。當使用Chrome開發者工具時,我看到一些響應標題爲Content-Type:application/octet-stream(這些鏈接強制Chrome下載),但有些鏈接的響應標頭爲Content-Type:audio/mpeg(這些鏈接允許Chrome以流媒體方式播放它們)。如何更改Chrome中的響應標頭

是否有任何允許更改響應標頭的Chrome擴展?因爲我想改變內容類型

回答

11

查看Chrome developer page

下面是一個簡單的例子,它將Content-Typehttps://www.google.com/修改爲text/plain。

chrome.webRequest.onHeadersReceived.addListener(function(details){ 
    for(var i = 0; i < details.responseHeaders.length; ++i) 
     if(details.responseHeaders[i].name.toLowerCase() == 'content-type') 
      details.responseHeaders[i].value = 'text/plain'; 
    return {responseHeaders:details.responseHeaders}; 
}, {urls: ['https://www.google.com/']}, ['blocking', 'responseHeaders']); 

注意,您必須在manifest.json宣佈雙方webRequestwebRequestBlocking權限。

+0

@方覺我應該在哪裏放置這段代碼?我需要寫一個新的擴展名嗎? – onmyway133

+0

@Yamamoto將代碼放置在後臺腳本中。如果您使用的是事件頁面而不是背景頁面,則應該使用chrome.declarativeWebRequest(將在下一個Chrome穩定版本中支持)。 –

+3

我試圖在背景頁面中做同樣的事情。奇怪的是,根據日誌,事件處理程序被執行,並且頭部被改變,但是這對被加載的頁面沒有影響 - 它的http頭部保持不變(根據開發人員的觀點)。沒有錯誤。有任何想法嗎? – Stan