【问题标题】:socket.io:- No 'Access-Control-Allow-Origin' header, errorsocket.io:- 没有“Access-Control-Allow-Origin”标头,错误
【发布时间】:2013-12-01 03:07:04
【问题描述】:

我的浏览器控制台在尝试与 web 应用建立 socket.io 连接时显示以下错误。

XMLHttpRequest cannot load http://abc.in/socket.io/1/?t=1385867719492. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://www.abc.in' is therefore not allowed access. 

【问题讨论】:

    标签: connection socket.io


    【解决方案1】:
    heroku labs:enable websockets -a myapp
    

    来自link

    或者可以添加:-

    io.configure(function () { 
      io.set("transports", ["xhr-polling"]); 
      io.set("polling duration", 10); 
    });
    

    也看answer

    【讨论】:

      【解决方案2】:

      将客户端 socket.io.js 文件从您尝试连接的同一台服务器上提供服务器。

      例如,我的初始客户端代码是这样的,它正在抛出错误

      <script src="/socket.io/socket.io.js"></script>
      var socket = io.connect('http://mydomain.com/');
      

      我修改成这个后,它就可以正常工作了。

      <script src="http://mydomain.com/socket.io/socket.io.js"></script>
      var socket = io.connect('http://mydomain.com/');
      

      而我的服务器代码是,

      var express = require('express');
      var app = express();
      app.use(function(req, res, next) {
              res.header("Access-Control-Allow-Origin", "*");
              res.header("Access-Control-Allow-Headers", "X-Requested-With");
              res.header("Access-Control-Allow-Headers", "Content-Type");
              res.header("Access-Control-Allow-Methods", "PUT, GET, POST, DELETE, OPTIONS");
              next();
          });
      var server = http.createServer(app);
      io = socketio.listen(server, {log:false, origins:'*:*'});
      ... //io.connect and events below
      

      【讨论】:

        猜你喜欢
        • 2018-09-19
        • 2016-01-21
        • 1970-01-01
        • 2020-01-05
        • 1970-01-01
        • 2017-09-19
        • 2015-04-02
        • 2020-10-24
        • 1970-01-01
        相关资源
        最近更新 更多