【问题标题】:How to proxy http requests with plain javascript? [closed]如何使用纯 JavaScript 代理 http 请求? [关闭]
【发布时间】:2023-04-03 03:31:01
【问题描述】:

我正在编写一个使用纯 javascript 的机器人,它向某个网站发送请求,而没有 node.js 或 jquery 之类的依赖项。我想通过代理发送每个请求,但我不知道如何使用 vanilla js 来做到这一点。

我什至不知道从哪里开始。我已经阅读了 xhr 文档,但没有发现任何关于代理的信息。 Google 也一无所获。

谢谢!

【问题讨论】:

  • 如果代理配置正确,您将对代理进行标准 XHR 调用,因为它是没有区别的最终端点
  • “我正在用普通的 javascript 编写一个机器人,它可以向某个网站发送请求,而不需要 node.js 或 jquery 等依赖项。”那么网页呢?如果不是,是什么环境?如果是这样: 1. 你知道Same Origin Policy 吗?它可能会阻止你做你想做的事。 2. 您不能使用与浏览器设置的代理不同的代理(如果有的话)。
  • @MosèRaguzzini 我感兴趣的是让来自我的客户的 http 请求看起来像是来自另一个通过代理。
  • @T.J.Crowder 是的,我知道相同的原产地政策。我只是在运行代码时在浏览器中禁用了 CORS

标签: javascript proxy xmlhttprequest


【解决方案1】:

代理服务器有两大类(出于本问题的目的,我们需要关注它们)。

  • 旨在设置为客户端的 HTTP 代理。这些要求将客户端配置为使用代理(例如,请参阅this university's guide to using their proxy)。您不能使用客户端 JavaScript 让浏览器使用这种代理。
  • 以常规 HTTP 服务器的形式出现,但通过向不同服务器发出 HTTP 请求(与读取静态文件或执行 CGI 程序相反)来确定做出何种响应。要使用这些:只需向代理服务器托管的 URL 发出 HTTP 请求。

【讨论】:

  • 好吧,我可能对第一种感兴趣。我想要的是让它看起来像是一个不同的客户端发送了请求。那么这不能从浏览器完成吗?那我可以使用 node.js 吗?
  • “所以这不能通过浏览器完成?” — 正确。
  • “那我可以使用 node.js 吗?” — 你可以在 node.js 中编写一个 HTTP 代理服务器(尽管安装一个现成的会更容易)。您仍然需要配置浏览器才能使用它。
  • 好吧,假设我有一个工作代理服务器的 IP 和端口。我将如何通过节点中的代理发送请求?
  • 取决于代理的类型。例如,如果它是 SOCKS5 代理,请使用 github.com/mattcg/socks5-https-client
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-24
  • 2021-10-27
  • 2020-06-07
  • 2012-04-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多