+
95
-

socket.io.js连接服务器出现跨域错误怎么解决?

今天用socket.io.js连接服务器出现跨域错误怎么解决?

<!DOCTYPE html>

<html>

<head>
    <meta charset="UTF-8">

</head>

<body>

    <script src="//repo.bfw.wiki/bfwrepo/js/socket.io.js"></script>

    <script>

        window.onload = function () {

            var socket = io.connect(':8989');

            //监听与服务器端的连接成功事件

            socket.on('connect', function () {

                console.log('客服端连接成功');

            });

            // 客服端收到服务器发过来的消息后

            socket.on('message', function (message) {

                console.log('客服端接收消息 ' + message);

            });

            //监听与服务器端断开连接事件

            socket.on('disconnect', function () {

                console.log('断开连接');

            });

        };

    </script>

</body>

</html>

结果出现access to XMLHttpRequest at 'http://×/socket.io/?EIO=3&transport=polling&t=NcXKJ6k' from origin 'http://×' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

网友回复

+
15
-

可以增加跨域设置的规则,比如nodejs+socketio这样设置:

var app = require('express')()//链式语法
var http = require('http').Server(app)
var io = require('socket.io')(http, {
    allowEIO3: true,
    cors: {
        origin: ['web.debug.only.bfw.wiki/'],//跨域设置
        ...

点击查看剩余70%

我知道答案,我要回答