gpt4 book ai didi

javascript - 如何从 Javascript 设置 WebSocket Origin Header?

转载 作者:行者123 更新时间:2023-11-30 07:37:00 36 4
gpt4 key购买 nike

我正在尝试使用 javascript 代表 从本地 test.dev 页面向运行在 ip 123.123.123.123 的服务器发出 websocket 请求>test.com。请求通过,但 123.123.123.123 服务器在 websocket 请求中看到 Origin: test.dev header 并拒绝连接,因为它想看到 Origin : test.com.

这里是连接套接字的javascript代码:

ws = new WebSocket("123.123.123.123");

如何使用 javascript 与 Origin: test.com 的不诚实 Origin header 启动 websocket 连接?

我希望这样的东西能奏效,但我找不到这样的东西:

ws = new WebSocket("123.123.123.123", "test.com");

最佳答案

简单的解决方案是在 hosts 文件中创建一个条目,将 test.com 映射到 123.123.123.123。稍后当您想要连接“真实的”test.com 时,您需要删除此条目。

一个不那么棘手的解决方案需要使用代理,它可以为您即时重写 header 。考虑在您的系统上安装 nginx,然后将请求代理到 123.123.123.123,保持 Origin header 的所有内容都相同。这是您在 nginx 配置文件中需要的条目:

server {
server_name test.dev;

location / {
proxy_pass http://123.123.123.123;
proxy_set_header Origin test.com;

# the following 3 are required to proxy WebSocket connections.
# See more here: http://nginx.com/blog/websocket-nginx/

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}

关于javascript - 如何从 Javascript 设置 WebSocket Origin Header?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30144233/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com