gpt4 book ai didi

java - netty 套接字 io CORS 错误 : Access-Control-Allow-Origin

转载 作者:行者123 更新时间:2023-11-30 11:02:52 25 4
gpt4 key购买 nike

我有运行 https 的 wamp 服务器、受 SSL 保护的 java netty socket.io 服务器和 socket.io 客户端。

在客户端我有以下代码:

io.connect(url, {secure: true} );

网址是:https://127.0.0.1:8080

当我在浏览器中打开我的网络服务器时:https://127.0.0.1我有以下错误:

socket.io-client:manager reconnect attempt error +1ms
socket.io.js (wiersz 1284)
socket.io-client:manager will wait 4000ms before reconnect attempt +1ms
socket.io.js (wiersz 1284)
engine.io-client:socket socket close with reason: "transport error" +3ms
socket.io.js (wiersz 3524)
engine.io-client:polling transport not open - deferring close +1ms
socket.io.js (wiersz 3524)
socket.io-client:manager attempting reconnect +4s
socket.io.js (wiersz 1284)
socket.io-client:manager readyState closed +3ms
socket.io.js (wiersz 1284)
socket.io-client:manager opening https://127.0.0.1:8080 +5ms
socket.io.js (wiersz 1284)
engine.io-client:socket creating transport "polling" +4s
socket.io.js (wiersz 3524)
engine.io-client:polling polling +5ms
socket.io.js (wiersz 3524)
engine.io-client:polling-xhr xhr poll +4ms
socket.io.js (wiersz 3524)
engine.io-client:polling-xhr xhr open GET: https://127.0.0.1:8080/socket.io/?EIO=3&transport=polling&t=1433329575886-4 +4ms
socket.io.js (wiersz 3524)
engine.io-client:polling-xhr xhr data null +6ms
socket.io.js (wiersz 3524)
GET https://127.0.0.1:8080/socket.io/? EIO=3&transport=polling&t=1433329575886-4

37ms
socket.io.js (wiersz 2739)
engine.io-client:socket setting transport polling +13ms
socket.io.js (wiersz 3524)
socket.io-client:manager connect attempt will timeout after 20000 +42ms
socket.io.js (wiersz 1284)
Zablokowano żądanie do zasobu innego pochodzenia: zasady „Same Origin Policy” nie pozwalają wczytywać zdalnych zasobów z „https://127.0.0.1:8080/socket.io/?EIO=3&transport=polling&t=1433329575886- 4”. (nieudane żądanie CORS)
engine.io-client:socket socket error {"type":"TransportError","description":0} +151ms
socket.io.js (wiersz 3524)
socket.io-client:manager connect_error +145ms

我不知道这个错误的原因...它是客户端、服务器上的错误还是 javascript 正在阻止某些东西?

我的错误是波兰语,但英语是这样的:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:8008/socket.io/1/?t=1399898337175. This can be fixed by moving the resource to the same domain or enabling CORS.

但是我的资源在同一个域中。

你知道如何解决这个问题吗?我读到在 header 中添加“Access-Control-Allow-Origin”可以解决这个问题。如何将其添加到 netty java socket.io 实现中?

编辑:

我添加到 header :Access-Control-Allow-Origin: "*"并且仍然出现错误

最佳答案

我在使用 NettySocketIO 时遇到了同样的问题。解决方案是更改 NettySocketio 服务器配置。问题是您的 NettySocketIO 服务器和您的 Web 服务器(您托管 html 网页的地方)位于不同的域中,您需要将 Web 服务器 URL 添加到您的 NettySocketIO 服务器。

这是我的代码

Configuration _config = new Configuration();

SocketIOServer _server;

public void InitServer(){

_config.setHostname("MYNettyWebSocketSever");
_config.setPort(9092);
_config.setOrigin("http://WebServerHost:WebServerPort"); // or http://domain.com

_server = new SocketIOServer(_config);
_server.addEventListener("chatevent", ComPacket.class, (socketIOClient, comPacket, ackRequest) -> _server.getBroadcastOperations().sendEvent("chatevent", comPacket));
}

public void StartServer(){
_server.start();
}

请注意,您需要托管 HTML 页面,仅通过双击打开 HTML 页面是行不通的。

如果你没有得到任何东西,请评论。

关于java - netty 套接字 io CORS 错误 : Access-Control-Allow-Origin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30619436/

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