Chrome扩展后台XMLHttpRequest代理服务器

Chrome extension background XMLHttpRequest proxy server

我在 Chrome 扩展中有一个后台任务执行一些 polling/checking。在错误情况下,我想使用不同的 CDN 服务器重试检查,以验证它是站点范围的问题还是只是受影响的 CDN 节点。挑战在于如何控制发送到哪个CDN节点。

例如假设我正在检查 www.company.com,通常由 server21.cdn.co

提供

现在,如果失败了,我想检查 server5.cdn.co 和 server10.cdn2.co 是否有相同的内容,看看是否存在关联。

这些检查是使用 XMLHttpRequest 完成的,但我找不到指定每个请求使用哪个 host/proxy 的方法。

我不想 "hijack" 整个浏览器的代理服务器设置,因为它会导致所有其他 pages/tabs 失败。

如果它是在 DNS 级别执行的负载平衡(最有可能),您根本不会影响您实际联系的服务器。

澄清一下,这无法完成,因为 XMLHTTPRequest 禁止覆盖请求中的 Host header。有关原因的解释,请参阅 https://security.stackexchange.com/questions/46702/how-can-i-control-the-content-of-the-http-host-header-in-requests-issued-from-my/

Conceptually/technically要不是这个安全问题还好办。例如 curl: curl --verbose --header 'Host: www.example.com' 'http://10.1.1.36/the_url_to_test'

但是正如问题中提到的,我们被困在 Chrome 扩展中,所以 curl 不是一个选项!