Mil*_*les 1 javascript cross-domain websocket
我正在尝试使用 javascript 从本地test.dev
页面向在 ip123.123.123.123
上运行的服务器发出 websocket 请求test.com
。请求通过了,但123.123.123.123
服务器看到了Origin: test.dev
websocket 请求中的标头并拒绝连接,因为它想看到Origin: test.com
.
这是连接套接字的javascript代码:
ws = new WebSocket("123.123.123.123");
如何使用 javascript 启动带有不诚实Origin
标头的websocket 连接Origin: test.com
?
我希望这样的事情会奏效,但我找不到任何这样的:
ws = new WebSocket("123.123.123.123", "test.com");
简单的解决方案是简单地在hosts
文件中创建一个条目以映射test.com
到123.123.123.123
. 当您想连接“真实”时,您需要稍后删除此条目test.com
。
一个不太麻烦的解决方案需要使用代理,它可以即时为您重写您的标头。考虑nginx
在您的系统上安装,然后代理请求以123.123.123.123
保持除Origin 标头之外的所有内容相同。这是您在 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";
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14506 次 |
最近记录: |