我在服务器中得到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错误,但我得到了服务器?如果你有任何问题,你可以问。谢谢。
2条答案
按热度按时间2g32fytz1#
"试试这个"
其中corsOptions为
oipij1gg2#
我解决了。问题是iis没有托管node.js项目而没有重定向。我上传iisnode到服务器并做了重定向设置。然后项目工作了。谢谢。