NodeJS 为什么我在使用www.example.com时服务器出现CORS错误socket.io

6qqygrtg  于 2023-03-22  发布在  Node.js
关注(0)|答案(2)|浏览(138)

我在服务器中得到CORS错误,但我在本地没有得到此错误。我的项目在本地工作,但当我尝试socket.io在服务器中连接我的www.example.com API时,我在控制台中得到此错误:
CORS策略已阻止从源“null”访问位于“https://my-web-site.com.tr/socket.io/?EIO = 4&transport = polling & t = ORwXVX_”的XMLHttpRequest:对印前检查请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。
我的API代码是这样的:

const cors = require('cors');
const express = require('express');
const app = express();
const http = require('http').Server(app);

const port = process.env.PORT || 3200;

app.use(cors({
    origin: '*'
}));

const io = require('socket.io')(http, {
    cors: {
        origin: '*',
        methods: ["GET", "POST"],
        allowedHeaders: ["*"],
        credentials: true
    }
}).of('/abcHub');

io.on('connection', (socket) => {
    console.log("Connected: " + socket.id);

    socket.on('disconnect', () => {
        console.log(`Disconnect ${socket.id}`);
        
    });
});

const server = http.listen(port, () => {
    console.log(`Server is running on port ${port}`);
});

我的客户端代码是这样的:

<script src="node_modules/jquery/dist/jquery.min.js"></script>
   <script src = "node_modules/socket.io/client-dist/socket.io.min.js"></script>
   <script>
  
      $(document).ready(() => {
      const socket = io("https://my-web-site.com.tr/abcHub"); 

      });
   </script>

我想知道为什么我在本地没有得到cors错误,但我得到了服务器?如果你有任何问题,你可以问。谢谢。

2g32fytz

2g32fytz1#

"试试这个"

const express = require("express")
const app = express()
const http = require("http")
const cors = require("cors")
const {Server} = require("socket.io") 
const corsOptions = require("./config/corsOptions.js")

app.use(cors())
const server = http.createServer(app)

const port = process.env.PORT || 3001

const io = new Server(server , corsOptions )

server.listen(port,()=>{
    console.log("server listening on ","3001")
})

其中corsOptions为

const corsOptions = {
    cors: {
        origin: "*"
    }
}
oipij1gg

oipij1gg2#

我解决了。问题是iis没有托管node.js项目而没有重定向。我上传iisnode到服务器并做了重定向设置。然后项目工作了。谢谢。

相关问题