首页 > 解决方案 > 使用 React、Node.js 和 Socket.io (v 4.0.0) 时如何修复 CORS

问题描述

在使用 React、Socket.io 和 Node.js 时,我在生产中遇到了 CORS 问题。

客户端:

import { io } from 'socket.io-client';
const socket = io('https://warm-wildwood-81069.herokuapp.com');

服务器端:

const app = require("express")();
const server = require("http").createServer(app);

const io = require("socket.io")(server, {
    cors: {
        origin: "https://priceless-swirles-68e598.netlify.app",
        methods: [ "GET", "POST" ]
    }
});

客户端和服务器都运行 4.0.0 版本的 Socket.io。

我得到的错误如下:

Access to XMLHttpRequest at 'https://warm-wildwood-81069.herokuapp.com/socket.io/?EIO=4&transport=polling&t=NXV7rQn' from origin 'https://priceless-swirles-68e598.netlify.app' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

和:

GET https://warm-wildwood-81069.herokuapp.com/socket.io/?EIO=4&transport=polling&t=NXV7rQn net::ERR_FAILED

现场演示:https ://priceless-swirles-68e598.netlify.app

标签: node.jsreactjssocket.iowebrtc

解决方案


推荐阅读