Solicitud de origen cruzado Socket.io + Node.js bloqueada

Estoy usando node y socket.io para escribir una aplicación de chat. Funciona bien en Chrome, pero Mozilla da un error al habilitar las solicitudes de origen cruzado.

Solicitud de origen cruzado bloqueada: la misma política de origen no permite leer el recurso remoto enhttp://waleedahmad.kd.io:3000/socket.io/?EIO=2&transport=polling&t=1401964309289-2&sid=1OyDavRDf4WErI-VAAAI. Esto se puede solucionar moviendo el recurso al mismo dominio o habilitando CORS.

Aquí está mi código para iniciar el servidor de nodo.

var express = require('express'),
    app = express(), 
    server = require('http').createServer(app),
    io = require('socket.io').listen(server),
    path = require('path');
server.listen(3000);

app.get('/', function(req, res) {
    res.sendfile(__dirname + '/public/index.html');
});

Del lado del cliente.

var socket = io.connect('//waleedahmad.kd.io:3000/');

Etiqueta de script en la página HTML.

<script type="text/javascript" src="//waleedahmad.kd.io:3000/socket.io/socket.io.js"></script>

También estoy usando el archivo .htaccess en el directorio raíz de la aplicación. (waleedahmad.kd.io/node).

Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"

Respuestas a la pregunta(8)

Su respuesta a la pregunta