首页 > 解决方案 > 是否可以在浏览器中使用 JavaScript 发出 HTTP CONNECT 请求?

问题描述

我知道如果我将浏览器的代理设置更改为使用 HTTP 转发代理,它将向代理服务器发出 HTTP CONNECT 请求。但是这种行为对前端 JavaScript 代码是透明的。

出于纯粹的好奇,我想知道是否可以在客户端 JavaScript 级别上做到这一点。这甚至可能吗?

铬控制台:

fetch("https://example.com", {method: 'CONNECT'})

错误信息:

Promise {: TypeError: 无法在 'Window' 上执行 'fetch': 'CONNECT' HTTP 方法不受支持。

我不希望这个请求返回任何有意义的响应。令我惊讶的是,浏览器甚至不允许发送请求。

标签: javascripthttphttp-proxy

解决方案


不可以。fetch 规范CONNECT其列为禁止方法,因为它可以用作安全漏洞的一部分。


推荐阅读