我最近切换到使用带有SSL证书的安全请求。由于我已经切换,因此出现以下错误,
加载失败 https://example.com:2096/socket.io/?EIO=3&transport=polling&t=M33Uhsp: 请求的上不存在"访问控制允许源"标头 资源。因此不允许使用原产地"https://example.com" 访问。响应具有 HTTP 状态代码 521。
我尝试将socket.io
的来源设置为我们网站的域,但这并没有解决任何问题。我不确定这是否与其他任何事情有关,但是当我使用正常的http
请求时,它工作正常。缺少什么?(科尔斯?
我只是创建密钥和证书文件并包含以下内容。
var app = require('../app');
var server = https.createServer({
key: fs.readFileSync('/var/www/html/driver_app/key.key', 'utf8'),
cert: fs.readFileSync('/var/www/html/driver_app/cert.crt', 'utf8'),
requestCert: false,
rejectUnauthorized: false
},app);
var ios = require('socket.io')(server);
require("../socket/socket")(ios);
// socket.js is
module.exports = function(io){
io.use(require('socketio-wildcard')());
io.use(require('./middleware'));
io.on('connection', (socket)=>{
console.log("connection done")
socket.on("error", (err)=>{
console.error("server err", err);
})
})
}
其中应用程序是我的快速应用程序,套接字/套接字.js是我的 socket.io 应用程序。这对我来说很好用