【问题标题】:Add cors to this snippet to allow all origins将 cors 添加到此代码段以允许所有来源
【发布时间】:2021-06-28 05:35:31
【问题描述】:

我需要将 cors 添加到这个 sn-p 以允许任何来源 server.js 作为节点服务器在 localhost:8000 上运行,我的 rails 应用程序在 localhost:3000 上运行有人可以告诉我如何将 cors 添加到这个 sn-p 和我见过的例子不同,因为连接是由脚本中的 io 而不是例子中的 app 建立的

require('dotenv').config();
const express = require("express");
const http = require("http");
const app = express();
const server = http.createServer(app);
const socket = require("socket.io");
const io = socket(server);

const users = {};

const socketToRoom = {};

io.on('connection', socket => {

【问题讨论】:

    标签: reactjs cors


    【解决方案1】:

    试试

    const io = require("socket.io")(httpServer, {
      cors: {
        origin: "*",
        methods: ["GET", "POST"]
      }
    });
    

    https://socket.io/docs/v4/handling-cors/

    【讨论】:

    • 仍然收到错误跨源请求被阻止
    【解决方案2】:

    你可以试试这个:

    app.use(function (req, res, next) {
        res.header('Access-Control-Allow-Origin', '*');
        res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
        res.header('Access-Control-Allow-Methods', '*');
        next();
    });
    

    【讨论】:

    • io连接到httpServer而不是app没关系?
    • 为了更好地回答我需要查看您遇到的实际错误。
    • 跨源请求被阻止:同源策略不允许读取localhost:8000/socket.io/… 的远程资源。 (原因:CORS 标头“Access-Control-Allow-Origin”缺失)。
    • 标签中有“reactjs”。是报告此错误的 React 应用程序吗?你的 package.json 中有 ` "proxy": "localhost:8000"` 吗?
    猜你喜欢
    • 2013-10-19
    • 2020-06-29
    • 2021-04-28
    • 2017-06-29
    • 2019-08-01
    • 2020-12-29
    • 2016-06-27
    • 1970-01-01
    • 2017-04-27
    相关资源
    最近更新 更多