0

我有一个简单的聊天服务器(node.js/express/socket.io),我正在从不同域的客户端访问它。我已经设置了允许一切的起源,这已经奏效了。但是,在客户端不活动大约 30 秒后,它会收到错误消息“XMLHttpRequest 无法加载 [url]。Access-Control-Allow-Origin 不允许来源。” 那时,除非我刷新页面,否则我无法再发送消息。我允许原点 withio.set('origins', '*:*');和 with

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]);)。我知道这是一个跨域问题,因为我在本地运行它时没有任何问题。有任何想法吗?

4

1 回答 1

0

当我在一个将 Twitter-Streaming API 用于聊天系统的项目中工作时,我遇到了类似的问题。您面临的问题可能是由于同源政策(更多信息在这里

此外,我发现最适合的解决方案是跨域 Gif 请求,您会发现在Google Analytic Sc ​​ript 中使用的一个概念,可以在此处找到对该概念的完整解释。

希望这个对你有帮助。它确实为我完成了这项工作。

于 2013-10-06T19:07:19.240 回答