Socket.io access-control-allow=origine de l'erreur de site distant
Je suis en train d'essayer d'accéder à un socket.io server à partir d'un autre site. Il a travaillé pour quelques semaines, mais maintenant, je reçois l'erreur suivante. Il se passe lors de l'accès à un serveur sur nodester à partir d'un serveur sur heroku. L'erreur est:
XMLHttpRequest cannot load http://site2.nodester.com/socket.io/xhr-polling//1311008802545.
Origin http://site1.heroku.com is not allowed by Access-Control-Allow-Origin.
Resource interpreted as Script but transferred with MIME type text/plain.
Uncaught SyntaxError: Unexpected identifier
Voici comment je me connecte avec le support:
socket = new io.Socket(
'site2.nodester.com', {port: 80, rememberTransport: false}
);
Et voici le code du serveur:
//requires
server = http.createServer(function(req, res){
//server stuffs
}),
server.listen(8362);
var io = io.listen(server),
//io code
"Ressources interprété comme Script mais transféré, avec le type MIME text/plain." C'est aussi un problème.
Je suis confronté exactement le même problème et sa me rend fou! Ont été u pu trouver une solution pour cela?
reportez-vous à ceci post pourrait vous obtenir un indice
Je suis confronté exactement le même problème et sa me rend fou! Ont été u pu trouver une solution pour cela?
reportez-vous à ceci post pourrait vous obtenir un indice
OriginalL'auteur JRPete | 2011-07-18
Vous devez vous connecter pour publier un commentaire.
Avez-vous configurer socket.io à toujours utiliser la valeur par défaut
origins = *
ou au moins mettreorigins = site1.heroku.com
OriginalL'auteur Alfred
Le problème que j'ai été confronté a été, de servir le client socket.io.js à partir d'un emplacement différent.
Vous pouvez éviter ce problème en servir le client js fichier à partir du serveur sur lequel vous tentez de vous connecter.
par exemple, mon premier code client était présent et il jetait erreur
une fois que je l'ai modifié à présent, ça fonctionne bien.
Et mon code serveur est,
Vous pouvez également proxy ce avec Nginx (michieldemey./blog/...), donc vous pouvez avoir nginx dans le même domaine et de la prise.io quelque part d'autre.
OriginalL'auteur Avinash
J'ai le même problème et je n'arrive pas à résoudre.
Je test beaucoup de configuration:
ou
ou
merci de votre aide 🙂
Vsplit, quelle est la version de la prise.io a fonctionné pour vous? Je suis actuellement à avoir ce problème.
Je suis à l'aide d'une douille.io 0.9.0 et même après le réglage des origines à :, je vais avoir ce problème. XMLHttpRequest ne peut pas charger undefined/socket.oi/1/?t=1332151750943. Origine localhost:8989 n'est pas autorisé par Access-Control-Allow-Origin.
Je suis confronté exactement le même problème et sa me rend fou! Ont été u pu trouver une solution pour cela?
avez-vous jamais trouver la solution? Toujours confronté au même problème ici.
OriginalL'auteur Vsplit
Il peut ne pas être liés, mais pourrait éventuellement aider certains pauvres âmes sur cette question:
J'ai juste rencontré exécutant le client à partir du disque local (au moins sous Windows) par exemple.
file:///c:/...
résultats dans un "null" à l'origine, qui va planter les origines de la vérifier. Essayez de télécharger le client à un site web distant et de le lancer à partir de là. Laisser les origines sur :.Espère que cela aidera certaines personnes.
socket.io
, et ne fonctionne que lorsque j'ai mis le fichier sur un serveur plutôt disque. Mais j'ai vraiment envie de charger un fichier local dans Chrome, est-il une autre solution?Le Post est mort depuis longtemps, mais pour la future référence que vous pourriez avoir utilisé un WAMP Pile installation ou quelque chose de similaire pour l'accueillir à l'adresse localhost ou semblable au lieu de charger un fichier.
OriginalL'auteur Ambidex
Cela a fonctionné pour moi
OriginalL'auteur Bitsian
J'ai résolu le problème en chargeant le client socket.io.js à partir du serveur lui-même, plutôt que d'en conserver une copie locale sur le site. Dans ma configuration, il y a une page web sur un certain site web qui récupère le fichier à partir du serveur, qui est à un endroit différent.
OriginalL'auteur toujamaru
Une solution simple (grâce à mattcodez):
io = io.listen(8888);
io.server.removeListener('request', io.server.listeners('request')[0]);
Il y a un bug ouvert pour ce problème et vous pouvez en lire plus à ce sujet ici:
OriginalL'auteur Steve Farthing
J'ai résolu ce problème en changeant une ligne de code client.
J'ai changé
à
OriginalL'auteur hansn