1

我正在使用 localtunnel 来公开我的后端和前端。现在,我有一个非常简单的设置,如下所示:

const httpServer = require('http').createServer();
const socketIO = require('socket.io');

const io = socketIO(httpServer, { cors: { origin: '*' } });

io.on('connection', (socket) => {
  ...
});

httpServer.listen(5000, () => {
  console.log(`Listening on the port 5000`);
});

然后我用 localtunnel 和lt --port 5000. 然后我获取 URL,在我的 React 前端中设置它,启动在端口 3000 上运行的前端应用程序,然后lt --port 3000. 然后,当我尝试连接到后端时,我不断收到此错误。

Access to XMLHttpRequest at 'https://tame-mayfly-63.loca.lt/socket.io/?EIO=4&transport=polling&t=NbU6WbU' from origin 'https://spotty-robin-42.loca.lt' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

首先我认为这是localtunnel的一些错误,但后来尝试了ngrok,错误是一样的。我正在启用来自 CORS 的所有来源,所以我不知道会发生什么。

curl "https://tame-mayfly-63.loca.lt/socket.io/?EIO=4&transport=polling"的工作,但我猜那是因为使用 cURL 发出请求时忽略了 CORS。

4

1 回答 1

4

我找到了解决我的问题的方法。看起来您首先需要访问为您的后端提供服务的动态网址,然后点击“继续”。这样做之后,CORS 将不再是问题。

于 2021-05-12T16:07:53.013 回答