客户端 JavaScript 可以使用自己的 HTTP 代理吗?

Posted

技术标签:

【中文标题】客户端 JavaScript 可以使用自己的 HTTP 代理吗?【英文标题】:Can client JavaScript use its own HTTP proxy? 【发布时间】:2011-10-22 17:44:17 【问题描述】:

我的服务器 server.example.com 无法从 Internet 访问。 但是,有一个可访问的 HTTP 代理 proxy.example.com 可以与服务器通信。

如果用户将他们的浏览器配置为通过 proxy.example.com 访问 *.example.com,或者使用我提供的代理自动配置文件,他们可以访问服务器(在使用代理进行身份验证后)。我想避免让他们经历这个手动过程。

是否可以以编程方式执行此操作? javascript 将从可通过 Internet 访问的 www.example.com 站点提供,因此原则上似乎不存在使这不可能实现的安全问题。

我的限制是 proxy.example.com 是一个 HTTP 代理,我无法触摸它。我只控制 server.example.com 和 www.example.com,我的 web 应用只能在 server.example.com 上运行。

【问题讨论】:

【参考方案1】:

不,但是...

按照您的要求,这是不可能的。但是,同样可以通过使用打开 URL 链接代理 地址的 iframe 来完成。在您的示例中,您必须调用以下地址(如果您的代理允许 URL 链接)

http://proxy.example.com/http://server.example.com

希望对你有帮助。

干杯, 迈克尔

【讨论】:

【参考方案2】:

不,您不能通过 Javascript 设置代理。

似乎没有安全问题

任意 Javascript 更改浏览器设置是一个安全问题。

【讨论】:

问题是这是否可以通过某种方式为这个特定站点完成,不一定通过设置全局浏览器设置。 @Adam http 代理是所有主要浏览器中的全局浏览器设置。 willsteel 为您提供了一种解决方法,但这不是标准的代理行为。

以上是关于客户端 JavaScript 可以使用自己的 HTTP 代理吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何提高jQuery的性能 ?

如何用javascript获取客户端的IP地址?

node.js

#yyds干货盘点#dart系列之:HTML的专属领域,除了javascript之外,dart也可以

HT for Web框架使用 费用多少?

我可以从 HTTP 客户端获取 TLS 机密来解密我自己的 HTTPS 对话吗?