Question
Je voudrais passer un appel ajax à un autre serveur (même domaine et boîte, juste un port différent.) Par exemple
Ma page est
http://localhost/index.html
Je voudrais faire une requête get ajax pour :
http://localhost:7076/?word=foo
J'obtiens cette erreur :
Access to restricted URI denied (NS_ERROR_DOM_BAD_URI)
Je sais que vous ne pouvez pas faire de requête ajax vers un domaine différent, mais il semble que cela inclue également différents ports ?existe-t-il des solutions de contournement ?
La solution
Ayez une certaine page sur votre serveur proxy du port 80 qui demande à l'autre port.Par exemple:
http://localhost/proxy?port=7076&url=%2f%3fword%3dfoo
Notez le codage de l'URL sur la dernière valeur de l'argument de la chaîne de requête.
Autres conseils
Vous pouvez utiliser JSONP.C'est ici que vous spécifiez un rappel avec la requête, la réponse de votre requête ajax est enveloppée avec le nom de la fonction de rappel.Plutôt que d'utiliser XmlHttpRequest, vous insérez une balise dans le document HTML avec l'URL.Ensuite, lorsque la réponse est récupérée, la fonction de rappel est appelée, transmettant les données en paramètre.
Vérifie ça article de blog dehors pour un exemple
Il s'agit d'une restriction du navigateur.Tous les appels javascript doivent être effectués vers le même serveur et le même port de la maison du script.Cela nécessitera quelque chose côté serveur pour se déplacer.C'EST À DIRE.avoir le processus à localhost
transmettre la demande à localhost:7076
.
C'est nul, mais c'est nécessaire...Fondamentalement, ce que vous devrez faire est de proxy votre requête AJAX via un proxy local - un script / une page / quoi que ce soit côté serveur sur le même domaine sur lequel vous vous trouvez - recevez l'appel et transférez-le à l'autre serveur de ressources. côté.Il y a peut-être quelques astuces IFRAME que vous pourriez faire, mais je ne pense pas qu'elles fonctionnent très bien... cela pourrait être une erreur, cela fait un moment.