在Flask socketio应用程序上连接时出错

2024-05-18 19:14:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个烧瓶套接字.ioHeroku上托管的应用程序(后端)。你知道吗

我有前端与JS代码连接到主机在我的本地机器。 尝试连接到服务器时出现以下错误。你知道吗

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://deploy-appp.herokuapp.com/socket.io/?

EIO=3&transport=polling&t=MH05dP-. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://deploy-appp.herokuapp.com/socket.io/?

EIO=3&transport=polling&t=MH05f5A. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

Link to the backend application

用于套接字连接的JS代码:

<script type="text/javascript">
var socket = io.connect('https://deploy-appp.herokuapp.com/');
socket.on('connect', function() {
console.log('connected');
});
socket.on('message', function(msg) {
document.getElementById('messages').append('<li>'+msg+'</li>');
console.log('Received message');
});
function send() {

console.log(document.getElementById('myMessage').value)
socket.send(document.getElementById('myMessage').value)

};
</script>

Tags: thehttpsiocomlogjsfunctionsocket
1条回答
网友
1楼 · 发布于 2024-05-18 19:14:26

查看cors wiki。通常,如果前端应用程序从不同的uri“运行”到后端,就会出现这样的错误。例如,客户端代码的宿主是我的客户.com但是你的套接字.io后端正在运行anotherclient.com. 你知道吗

有很多解决办法,你可以显式设置原点,看看这个答案Socket.io + Node.js Cross-Origin Request Blocked。(如果您在本地运行web应用程序,这是最快的方法,但长期运行不安全)

或者,在客户端web服务器和socketio应用程序前面有一个反向代理,该代理将客户端/socketio调用路由到您的socketio服务器,并将另一个请求路由到承载站点的服务器。你知道吗

相关问题 更多 >

    热门问题