google-chrome-extension – 从Chrome扩展程序更改XMLHttpRequest中的User-Agent

我正在尝试从扩展中发送HTTP请求,我需要更改用户代理.

我的代码如下所示:

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" })

然后,我收到一个错误“拒绝设置不安全的标头:UserAgent”

我需要改变它,因为我的后端需要有一个特殊的用户代理,是否可以通过扩展来做到这一点?

我尝试了webRequest API,在发送请求之前更改了标头,但它说它不能与扩展中的XMLHttpRequest一起使用以防止锁定.

您可以使用webRequest API轻松更改User-Agent标头.
有关示例代码,请参阅 Associate a custom user agent to a specific Google Chrome page/tab.

从该答案中获取代码,并将“main_frame”,“sub_frame”更改为“xmlhttprequest”以修改通过XMLHttpRequest启动的网络请求.

显然,为防止死锁,此方法不适用于同步请求(即当xhr.open的第三个参数设置为false时).

相关文章
相关标签/搜索