当前位置: 首页 > 知识库问答 >
问题:

在firefox中运行node.js和socket.io时出现CORS错误

阳建弼
2023-03-14

我正在运行节点.js在 apache 上 socket.io。我让它在子域上运行(例如 - myapp.mydomain.com:8000),如您所见,我在不同的端口上运行它,以便我可以使用 myapp.mydomain.com 访问它。

在chrome,Opera,IE中一切正常,但是FF失败了,我遇到了跨域错误。

已阻止跨源请求:同源策略不允许读取位于的远程资源http://myapp.mydomain.com:8000/socket.io/?EIO=2

有什么想法吗?

更新:

根据要求添加了我的代码:

function handler(req, res) {
  fs.readFile('../index.html', function(err, data) {
    if (err) {
      console.log(err);
      res.writeHead(500);
      return res.end('Error loading client.html');
    }
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    res.writeHead(200);
    res.end(data);
  });
}

共有1个答案

山乐生
2023-03-14

Websockets(套接字。IO)并不依赖于CORS。插座背后的主要原因之一。IO是为了在处理不同域时完全停止CORS类问题。如果您认为这可以通过启用cors来实现,那么假设您使用的是express.js或hapi.js,请参见下面如何启用cors的链接。

hapijs-

new Hapi.Server({
  connections: {
    routes: {
      cors: true
    }
  }
})

expressjs -

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});
 类似资料:
  • 我是Node.js的新手,我试图通过Node.js运行我的测试文件。我只是简单地键入“node.\tut63.js”,但它显示了以下错误: 错误:在function.module._resolveFilename(internal/module/cjs/loader.js:880:15)(internal/module/cjs/loader.js:725:27) 在function.module.

  • 我在Windows7中有cygwin,下载并安装了maven“二进制文件”,并有以下设置 我错过了什么?

  • 问题内容: 我尝试了以下文档以在Google云上运行node.js应用程序:https : //cloud.google.com/nodejs/getting-started/hello- world Node.js运行正常,但是如果我运行,我会…。 问题答案: 最新的Google Cloud SDK 0.9.65版本存在一个错误。 您可以使用以下命令还原到Cloud SDK 0.9.64: 下一

  • 我在Heroku的./bin文件夹中有这个脚本。该脚本调用parse cloud函数。 脚本运行时没有错误 Heroku控制台日志显示如下输出。云函数有一些console.log语句,但是它们的输出也没有出现。 heroku[router]:at=info-method=POST-path=“/parse/functions/resetJob”host=app.herokuapp。com requ

  • 这里出了什么问题。我阅读了Spring文档,但没有找到如何使用JPA和自定义方法进行查询。 提前谢了。