【问题标题】:XMLHttpRequest cannot load with Socket.io in ExpressJSXMLHttpRequest 无法在 ExpressJS 中使用 Socket.io 加载
【发布时间】:2017-03-06 05:06:24
【问题描述】:

我目前正在使用 Socket.io npm 模块在我的服务器中的端口 5555 上运行 ExpressJS。在我的客户端,我使用 io.connect 到我的 localhost:5555,这是我在 AngularJS 控制器中的服务器。我的客户端连续返回 XMLHttpRequest。在我的服务器端,我使用过

app.use(cors())

app.use(cors("http://localhost:6666"))

但还是没有运气。

客户端运行在 localhost:6666

var socket = io.connect("http://localhost:5555");

服务器端运行在 localhost:5555

var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var port = process.env.PORT;
io.set('transports', ['websocket', 'xhr-polling', 'jsonp-polling', 'htmlfile', 'flashsocket']);
io.set('origins', '*:*');

错误信息:

XMLHttpRequest 无法加载 本地主机:5555/socket.io/?EIO=3&transport=polling&t=LVsapo4。 凭据标志为“真”,但“访问控制允许凭据” 标题是''。必须为“true”才能允许凭据。起源 'localhost:6666' 因此不允许访问。

【问题讨论】:

  • 你试过没有第二次cors初始化吗?
  • @bflemi3 是的还是不行

标签: javascript angularjs node.js sockets


【解决方案1】:

你能在你的快递服务器代码中试试这个

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();
});

而不是您当前使用的代码。

【讨论】:

  • 我删除了所有的 cors 和 io 集并添加了您的代码。错误还是一样,不工作。
猜你喜欢
  • 2012-05-23
  • 1970-01-01
  • 2013-01-06
  • 2013-06-13
  • 2015-03-16
  • 2011-11-01
  • 1970-01-01
  • 2023-04-10
相关资源
最近更新 更多