Socket.io - Herkunft nicht erlaubt, Access-Control-Allow-Origin

Ich weiß, es gab einige Diskussionen zu diesem Thema auf, aber ich kann nicht finden, die Antwort auf meine Frage. Ich habe eine web-Seite läuft auf dem server mit Aptana auf localhost:8020. Das javascript auf der Seite ist das schlagen von Knoten-server habe ich auf localhost:1337. Hier ist die node-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");
});

Ich bin Umgang mit der cors Anfrage durch ändern der Header, die ich die ganze Zeit mache. Meine client-side code in der Regel-Buchse.io-Anfänger-Kram. Hier ist der tag von meinem 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);
        }

Wenn ich den code bekomme ich immer wieder 'XMLHTTPRequest...Herkunft ist nicht erlaubt, Access-Control-Allow-Origin' - Fehler. Mein browser ist chrome.
1. Warum ist mein browser mithilfe von XMLHTTPRequest und nicht eine Websocket?
2. Warum erhalte ich eine " Access control Fehler, wenn ich mich verändert den Header?
Vielen Dank für alle Hilfe im Voraus.

Ich habe vor dem gleichen problem und seine mich verrückt.Waren u in der Lage, eine Lösung zu finden?
Ich Tat dies herauszufinden, und ich muss die post die volle Antwort, aber es hat schon eine Weile und ich muss schauen, über was ich getan habe. Geben Sie mir einige weitere details, auf das, was dein spezifisches problem ist.
Ich bin auch in dieses problem, und wäre daran interessiert zu hören, Ihre Lösung. Die einzige Lösung, die ich habe kommen mit ist nicht ideal, da es sich um hacking "manager.js" code in die Steckdose.io-library ändern Sie die Zeile, wo es erklärt Header['Access-Control-Allow-Origin'] = '*'; Es muss einen besseren Weg geben...

InformationsquelleAutor jhamm | 2013-02-05

Schreibe einen Kommentar