【问题标题】:How to solve cors error in socket.io laravel and nodejs signalling app如何解决 socket.io laravel 和 nodejs 信令应用程序中的 cors 错误
【发布时间】:2021-12-09 02:34:21
【问题描述】:

我有一个用 laravel 和 socket.io 构建的聊天应用程序。我的 laravel 应用程序位于一个域上,而我的 nodejs 应用程序位于另一个域上。连接到我的 nodejs 信号应用程序会出现 cors 错误,而 nodejs 应用程序也会返回 cors 错误。这是我的 nodejs 应用程序

"use strict";

require('dotenv').config();

const express = require('express');
const app = express();
const fs = require('fs');
const options = {
        key: fs.readFileSync(process.env.KEY_PATH),
        cert: fs.readFileSync(process.env.CERT_PATH)
    };
const https = require('https').Server(options, app);
const io = require('socket.io')(https);
io.origins('*:*');
const listner = https.listen(process.env.PORT, function() {
    console.log('Listening on ', listner.address().port);
});

//allow only the specified domain to connect
io.set('origins', process.env.DOMAIN + ':*');

require('./socket')(io);

app.get('/', function (req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
   // Add this
   if (req.method === 'OPTIONS') {
        res.header('Access-Control-Allow-Methods', 'PUT, POST, PATCH, DELETE, OPTIONS');
        res.header('Access-Control-Max-Age', 120);
        return res.status(200).json({});
    }
    res.send('Ok');
  
    next();

我在我的 laravel 后端安装了一个 cors 中间件,但没什么区别。任何帮助将不胜感激

【问题讨论】:

    标签: node.js laravel socket.io cors


    【解决方案1】:

    您需要删除这两行。 cos,您首先设置了任何来源,并且您已经使用 env 指定了域。

    io.origins('*:*');
    io.set('origins', process.env.DOMAIN + ':*');
    

    允许用户的确切方式是

    // process.env.DOMAIN == "https://anydomain.com:port"
    // process.env.DOMAIN != "anydomain.com:port"
    const options={
     cors:true,
     origins:[process.env.DOMAIN],
    }
    const io = require('socket.io')(https, options);
    

    【讨论】:

      猜你喜欢
      • 2021-01-21
      • 2021-09-15
      • 2020-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-13
      • 2019-11-09
      • 2020-12-11
      相关资源
      最近更新 更多