自SSL以来没有'Access-Control-Allow-Origin'

时间:2018-01-04 23:23:47

标签: node.js ssl socket.io cross-domain

我最近切换到使用SSL证书的安全请求。由于我已经切换,我收到以下错误,

  

无法加载   https://example.com:2096/socket.io/?EIO=3&transport=polling&t=M33Uhsp:   请求中不存在“Access-Control-Allow-Origin”标头   资源。因此不允许来源“https://example.com”   访问。响应的HTTP状态代码为521。

我已尝试将socket.io的来源设置为我们网站的域名,但这并没有解决任何问题。我不确定这是否与其他任何内容有关,但是当我使用正常http请求时,它工作正常。缺什么? (CORS?)

1 个答案:

答案 0 :(得分:0)

我只是创建密钥和证书文件,并包括如下。

    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);
       })
    })

    }

其中app是我的快递应用程序,socket / socket.js是我的socket.io应用程序。这对我来说很好用