我試圖從擴展中發送HTTP請求,在該擴展中我需要更改用戶代理。從Chrome擴展中更改XMLHttpRequest中的用戶代理
我的代碼如下所示:
function getXMLHttpRequest(method, url, extraHeaders) {
var xhr = new XMLHttpRequest();
xhr.open(method, url, true)
for (var headerKey in extraHeaders) {
xhr.setRequestHeader(headerKey, extraHeaders[headerKey]);
}
return xhr;
}
//....
getXMLHttpRequest("POST", "....", { "User-Agent": "Blahblahblah" })
然後,我得到一個錯誤「爲由,拒絕設定不安全標題:用戶代理」
我需要改變,因爲我的後端需要有一個特殊的User-Agent,是否可以通過擴展來實現?
我嘗試了webRequest API,在發送請求之前更改標頭,但它表示它不能與擴展中的XMLHttpRequest一起使用,以防止鎖定。
@ExpertSystem但您可以使用webRequest API更改UserAgent。這是文檔中的一個例子。 http://developer.chrome.com/extensions/webRequest.html – HyLian
@ExpertSystem我知道它被認爲是不安全的,但這不是一個普通的JavaScript,它是一個瀏覽器擴展,我可以使用套接字併發送任何我想要的東西。爲什麼不允許發送任意的HTTP請求?跨標準請求也被標準禁止,它們可以通過清單中的適當配置完成。 – HyLian
http://www.w3.org/TR/cors/本文描述瞭如何在OPTIONS的響應中不能向不包含Access-Control-Allow-Origin的Web服務器發出HTTP請求。我沒有更改我的服務器,並且我可以將XMLHttpRequests設置爲不包含響應中的頭部的描述。但無論如何,我並不是說XMLHttpRequest應該允許它,我正在尋求一種方法來製作一個HTTP請求,在Chrome擴展中指定我自己的User-Agent。它可以是Chrome。* API或其他。 – HyLian