Angularjs Socket.IO CORS请求失败
我在客户端有一个角度模块:Angularjs Socket.IO CORS请求失败,angularjs,node.js,firefox,express,socket.io,Angularjs,Node.js,Firefox,Express,Socket.io,我在客户端有一个角度模块: 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
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:我通过以下方式解决了这个问题:
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
});
});
请看这里: