我有一个应用程序连接到Nestjs服务器以建立WS连接(服务器位于不同的URL上,因此它是一个CORS请求)。
WebsocketGateway就是这样定义的。
@WebSocketGateway(port, {
handlePreflightRequest: (req, res) => {
const headers = {
'Access-Control-Allow-Headers': 'Authorization',
'Access-Control-Allow-Origin': 'the page origin',
'Access-Control-Allow-Credentials': true,
};
res.writeHead(200, headers);
res.end();
}
})
在Chrome v87和Firefox上都能很好地工作。自从我的浏览器升级到Chrome 88后,前端socket-io连接就进入了一个连接-重新连接循环,如下所示:
- preflight请求通过并获得一个200的响应,其头部设置在上面;
1.实际连接失败,浏览器控制台中显示唯一消息CORS error
3条答案
按热度按时间0yg35tkg1#
只是以防别人需要这个,在您的decorator有一个cors属性
b1uwtaje2#
这就是我如何修复的
main.ts
11dmarpk3#
如果使用cookie身份验证,请确保将凭据cors属性设置为true。例如: