【发布时间】:2013-10-13 07:04:48
【问题描述】:
我有一个简单的聊天服务器 (node.js/express/socket.io),我正在从不同域上的客户端访问它。我已经设置了允许一切的起源,这已经奏效了。但是,在客户端不活动大约 30 秒后,它会收到错误消息“XMLHttpRequest 无法加载 [url]。Access-Control-Allow-Origin 不允许来源。”那时,除非我刷新页面,否则我无法再发送消息。我允许使用io.set('origins', '*:*'); 和使用
app.all('*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
next();
});.
我已经尝试了几乎所有我能想到的(禁用心跳、捕获错误并在客户端上重新连接,使用io.server.removeListener('request', io.server.listeners('request')[0]);)。我知道这是一个跨域问题,因为我在本地运行它时没有任何问题。有什么想法吗?
【问题讨论】:
-
我正在使用 websockets。
标签: node.js socket.io cross-domain cors