I'm trying to do cross-domain socket.io, but I'm experiencing an issue: I always get XMLHttpRequest cannot load http://handsonwithnodejs.samarthwiz.c9.io/socket.io/1/?t=1358882710333. Origin https://c9.io is not allowed by Access-Control-Allow-Origin .

Server code:

var app = require('http').createServer(handler) , io = require('socket.io').listen(app) , fs = require('fs') app.listen(process.env.PORT); function handler (req, res) { fs.readFile(__dirname + '/index.html', function (err, data) { if (err) { res.writeHead(500); return res.end('Error loading index.html'); } res.writeHead(200); res.end(data); }); } io.set('origins', '*:*'); io.sockets.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); });

On line 19 io.set('origins', '*:*'); I tried replacing ' : ' with '*', 'https://c9.io', ' c9.io ','https://c9.io/ ' and '.', some times when I add something like 'c9.io/ ' I get warn 'illegal origin ...' but that is just a cloud9 related issue.

Client code:

<html> <body> <script src="https://raw.github.com/LearnBoost/socket.io-client/master/dist/socket.io.js"></script> <script> var socket = io.connect('http://handsonwithnodejs.samarthwiz.c9.io'); socket.on('news', function (data) { console.log(data); socket.emit('my other event', { my: 'data' }); }); </script> </body> </html>

I know that using github to get my script isn't the best idea yet, but I wanted to keep my code clean and the error messages readable(everything in 'socket.io.min.js' is on line 2)

P.S. 1. I know that there are other threads like this but they didn't solve my problem. 2. Please don't reply 'Just host the page on the same server as socket.io' I need it to be cross-domain for a reason.

本文前端(javascript)相关术语:javascript是什么意思 javascript下载 javascript权威指南 javascript基础教程 javascript 正则表达式 javascript设计模式 javascript高级程序设计 精通javascript javascript教程

代码区博客精选文章
分页:12
转载请注明
本文标题:Socket.io Cross-domain connections fail; 'XMLHttpRequest cannot load ...'
本站链接:https://www.codesec.net/view/610888.html


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 前端(javascript) | 评论(0) | 阅读(110)