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

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

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

Failed to load https://example.com:2096/socket.io/?EIO=3&transport=polling&t=M33Uhsp: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://example.com' is therefore not allowed access. The response had HTTP status code 521.

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

最佳答案

我只是创建 key 和证书文件并包含如下内容。

    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 是我的 express 应用程序,socket/socket.js 是我的 socket.io 应用程序。这对我来说很好

关于node.js - 自 SSL 以来没有 'Access-Control-Allow-Origin',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48105032/

相关文章:

javascript - 扩展尚未创建的 javascript (nodeJS) 对象

javascript - 执行 socket.io 聊天示例 Node.js 时出错

javascript - 为什么调用 os.tmpDir() 只会在某些机器上产生错误?

javascript - Node 错误: connect ETIMEDOUT when trying to access route/setup

iphone - 在 iOS 中,如何使用服务器上带有自签名证书的 https 连接到服务器?

wordpress - 直接在 HTTPS 中安装 WordPress(已经安装了 SSL)

java - 无法在 docker 中初始化类 sun.security.ec.SunEC 异常

javascript - 使用 sails.sockets.join 和 sails.sockets.broadcast 到客户端的 Sails.js 不会将信息返回给客户端

Node.js + Socket.io 应用程序 - 在heroku 中不起作用

node.js - 在发送到 Node.js 服务器的请求正文中提取二进制数据(jpeg 图像)