【发布时间】:2017-11-21 12:57:39
【问题描述】:
我已经设置了一个带有套接字 io 的节点服务器,并尝试通过另一台服务器连接到它。 然而,不同计算机上的一些浏览器给了我这个错误,并让它一直重新连接:
XMLHttpRequest 无法加载 https://serverDomain.net:3000/socket.io/?EIO=3&transport=polling&t=Lo_SdiU。当请求的凭据模式为“包含”时,响应中的“Access-Control-Allow-Origin”标头的值不能是通配符“*”。因此,Origin 'https://www.differentServerDomain.fr' 不允许访问。 XMLHttpRequest 发起的请求的凭证模式由 withCredentials 属性控制。
我的 js 配置:
var port = 3000;
var fs = require('fs');
var https = require('https');
var express = require('express');
var app = express();
var options = {
key: fs.readFileSync('/etc/letsencrypt/live/devpeter.net/privkey.pem'),
cert: fs.readFileSync('/etc/letsencrypt/live/devpeter.net/fullchain.pem')
};
var server = https.createServer(options, app);
var io = require('socket.io')(server);
io.origins('https://www.differentServerDomain.fr:* https://www.differentServerDomain.fr/wp-admin/index.php:*');
// start of server
server.listen(port, function(){
console.log('listening on *: '+ port + "\n");
});
我正在使用节点 8.0 和套接字 io 2.2, 非常感谢您的帮助。
编辑: 这是客户端代码:
<script src="https://serverDomain.net:3000/socket.io/socket.io.js"></script>
<script>
var socket = io('https://serverDomain.net:3000');
</script>
【问题讨论】:
标签: javascript node.js socket.io cors