CNode

socket 跨域问题?

Ccxh80301983发布于12 年前最后回复12 年前4 回复15446 浏览0 收藏

火狐上提示的 已阻止交叉源请求:同源策略不允许读取 http://x.x.x.x:6789/socket.io/1/?t=1399889735198 上的远程资源。可以将资源移动到相同的域名上或者启用 CORS 来解决这个问题。 server端 var condb = require('./condb'); var io = require('socket.io').listen(6789,{log:false}); io.configure(function () { io.set('log level', 1); io.set('origin', '*'); }); io.sockets.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('nick',function(data){ condb.add({'nick':data.name},socket.id) }); socket.on('all',function(data){ socket.broadcast.emit('broad',{'type':0,'msg':'信息推送','name':'SYSTEM'}); }); socket.on('disconnect', function () { condb.del(socket.id) }); }); ~
客户端

     <script type="text/javascript">
         var socket;
         window.onload = function(){
             socket = io.connect('http://x.x.x.x:6789');
             socket.on('news', function (data) {
                 console.log(data);
                 socket.emit('my other event', { my: 'data' });
             });
         }
         function send(msg){
             socket.emit('nick',{'name':msg})
         }
     </script>

客户端现在就是静态html页面 如果 我现在 在本地的页面 使用的话 会提示跨域

搜了好久都没解决,

查看回复

回复 (2)

C
cxh80301983#1·12 年前

在一个服务器上都没问题

C
cxh80301983#2·12 年前

求教,是此路不通吗? 还是有办法解决

参与回复
登录后即可参与回复。登录