2015-05-29 118 views
0

我有我的客戶端的角度模塊:Socket.IO CORS請求失敗

angular.module('App') 
    .factory('socketClient', function(socketFactory, Auth) { 

    // socket.io now auto-configures its connection when we ommit a connection url 
    var ioSocket = io('', { 
     // Send auth token on connection 
     query: 'token=' + Auth.getToken(), 
     path: '/socket.io-client' 
    }); 

    return socketFactory({ 
    ioSocket: ioSocket 
    });; 
    }); 

如果我想其他的命名空間的要求,我做了下改變:

var ioSocket = io('/test', { 
     // Send auth token on connection 
     query: 'token=' + Auth.getToken(), 
     path: '/socket.io-client' 
    } 

但是,當我這樣做,我得到後續登錄瀏覽器。

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost/socket.io-client/?token=&EIO=3&transport=polling&t=1432867748704-8. (Reason: CORS request failed). 

當我連接到命名空間時出現此錯誤。

對不起,我的英文。 C:

+0

看看這裏:http://stackoverflow.com/q/15771805/5246 – sirrocco

回答

0

我解決了這個由:

angular.module('App') 
.factory('socketClient', function(socketFactory, $window) { 

    // with the full path: $window.location.origin + '/test' 
    var ioSocket = io($window.location.origin + '/test', { 
    // Send auth token on connection 
    query: 'token=' + Auth.getToken(), 
    path: '/socket.io-client' 
    }); 

    return socketFactory({ 
    ioSocket: ioSocket 
    }); 
});