我正在開發一個Chrome擴展,它在各個站點上生成XMLHttpRequest,但我注意到我的瀏覽器忽略字段「withCredentials」。無論這是設置爲true還是false,響應總是相同的,幷包含網頁,因爲它是通過瀏覽器進行簡單的網址導航所請求的。Chrome擴展忽略XMLHttpRequest.withCredentials字段
清單:
"background": {
"scripts": ["jquery.min.js", "daemon.js"],
"persistent": true
},
"permissions": [
"<all_urls>"
]
內daemon.js:儘管withCredentials設置爲false
var xhr = new XMLHttpRequest();
xhr.open("GET", 'http://stackoverflow.com/', true);
xhr.withCredentials = false;
xhr.onload = function(e) {
$('body').html(xhr.responseText);
}
xhr.send();
這將返回stackoverflow.com加載有我的一些DOM元素中的用戶名。我的問題是:
- 這是一個按預期行爲工作嗎?
- 如果是,是否有解決方法?從擴展內部發起http請求,但忽略cookie或其他會話信息? (更新:忽略所有憑證信息,如客戶端證書或http身份驗證)
我正在使用最新的(22.0.1229.79米)Chrome。
這應該有所幫助:http://stackoverflow.com/questions/11327593/google-chrome-extension-prevent-cookie-on-jquery-ajax-request-or-use-a-chome-e。我不確定在Chrome擴展上下文思想中如何使用Credentials。 –
經過測試的webRequest API,適用於我。我擔心這並不能解決我的問題,因爲除了頭文件/ cookies之外,還有一些用於證書傳輸的方法,比如客戶端證書。我也不想使用隱身窗口解決方案。更新:否,webRequest不能在擴展上下文中工作,所以我不能從擴展內部修改XHR的頭文件:( – James