Socket.io - Origine non autorisés par Access-Control-Allow-Origin

Je sais qu'il y a eu un débat sur ce sujet, mais je ne peux pas trouver la réponse à ma question. J'ai une page web s'exécutant sur le serveur avec Aptana sur localhost:8020. Le javascript sur la page de frapper un nœud de serveur que j'ai en cours d'exécution sur localhost:1337. Là est le nœud code:

var io = require('socket.io');
var http = require('http');
var sys = require('sys');
var json = [];
var server = http.createServer(function (req, res) {

  var headers = {};
  headers["Access-Control-Allow-Origin"] = "*";
  headers["Access-Control-Allow-Methods"] = "POST, GET, PUT, DELETE, OPTIONS";
  headers["Access-Control-Allow-Credentials"] = true;
  headers["Access-Control-Max-Age"] = '86400'; //24 hours
  headers["Access-Control-Allow-Headers"] = "X-Requested-With, Access-Control-Allow-Origin, X-HTTP-Method-Override, Content-Type, Authorization, Accept";
  res.writeHead(200, headers);
  res.end();
});
server.listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
var socket = io.listen(server);
socket.on('connection', function(){
  console.log("Connected");
});

Je suis la manipulation de la scro demande en changeant les en-têtes, qui je le fais tout le temps. De mon côté client, le code est généralement prise.io débutant choses. Voici le tag de mon code:

<script src="http://cdn.socket.io/stable/socket.io.js"></script>
    <script>

        //Create SocketIO instance
        var socket = new io.Socket('localhost',{
            port: 1337
        });
        socket.connect();

        //Add a connect listener
        socket.on('connect',function() {
            log('<span style="color:green;">Client has connected to the server!</span>');
        });
        //Add a connect listener
        socket.on('message',function(data) {
            log('Received a message from the server:  ' + data);
        });
        //Add a disconnect listener
        socket.on('disconnect',function() {
            log('<span style="color:red;">The client has disconnected!</span>');
        });

        //Sends a message to the server via sockets
        function sendMessageToServer(message) {
            socket.send(message);
            log('<span style="color:#888">Sending "' + message + '" to the server!</span>');
        }

        //Outputs to console and list
        function log(message) {
            var li = document.createElement('li');
            li.innerHTML = message;
            document.getElementById('message-list').appendChild(li);
        }

Lorsque j'exécute le code, je reçois des 'XMLHTTPRequest...Origine n'est pas autorisée par Access-Control-Allow-Origin' erreurs. Mon navigateur est google chrome.
1. Pourquoi mon navigateur à l'aide de XMLHTTPRequest et pas un Websocket?
2. Pourquoi je reçois un contrôle d'Accès d'erreur lorsque je change les en-têtes?
Merci à tous pour l'aide à l'avance.

J'ai été confronté au même problème et sa me rend fou.Ont été u en mesure de trouver une solution pour cela?
J'ai fait cela et j'ai besoin de poster une réponse complète, mais il a été un moment et j'ai besoin de regarder plus de ce que j'ai fait. Me donner un peu plus de détails sur ce que votre problème spécifique.
Je suis également en cours d'exécution dans ce problème, et serait intéressé à entendre votre solution. La seule solution que j'ai proposé n'est pas l'idéal, car il implique de piratage "manager.js" code de la douille.io bibliothèque de changer la ligne où il déclare en-têtes['Access-Control-Allow-Origin'] = '*'; Il y a une meilleure façon...

OriginalL'auteur jhamm | 2013-02-05