CORS activé dans Apache, mais AJAX ne fonctionne pas (le chrome indique que l'origine n'est pas autorisée)
Je suis tenté de se faire de l'AJAX de travail entre les deux sous-domaines.
rails.mydomain.com et mydomain.com
Dans apache dans /etc/apache2/sites-available/j'ai mon rails.mydomain.com fichier:
<VirtualHost *:80>
Header add Access-Control-Allow-Origin "http://www.mydomain.com"
Header add Access-Control-Allow-Origin "http://www.dev-mydomain.com"
</VirtualHost>
Cependant, chaque fois que j'essaie de faire un simple ajax demande de test de http://www.dev-mydomain.comen Chrome-je obtenir: "XMLHttpRequest ne peut pas charger http://rails.mydomain.com/directory. Origine http://www.dev-mydomain.com n'est pas autorisé par Access-Control-Allow-Origin."
Ce que quelqu'un sait ce que je suis absent?
source d'informationauteur Joel Grannas
Vous devez vous connecter pour publier un commentaire.
Comme Dahazer du lien les points, le meilleur pari est de définir un seul Access-Control-Allow-Origin-tête. Ce n'est certainement pas approprié pour la production, mais vous pourriez tout simplement renvoyer le
Origin
en-tête tandis que votre en dev mode.Si vous avez encore un problème, il est probable que vous n'êtes pas de réglage assez de la SCRO en-têtes de la réponse. Dans mon expérience de faire des croix domaine ajax de google chrome (pas à l'aide de jquery esprit), j'ai également nécessaire pour définir l'en-tête suivant:
Donné j'ai été en utilisant les méthodes HTTP autres que les POST et GET il a également été nécessaire pour moi de mettre
Cependant, par-dessus tout, je recommande la lecture de l'html5 de la SCRO tutoriel, en particulier la De la SCRO sur le serveur section.
Il devrait vous donner une bonne idée des différentes façons de configurer la SCRO, que ce soit sur le serveur ou le client ( dans votre cas, jquery ajax options de configuration), basé sur votre cas d'utilisation spécifiques.
J'ai eu ce problème récemment. J'avais mis
Access-Control-Allow-Origin
à*
dans Apache. Cependant, le Chrome était encore le blocage de mes requêtes inter-domaine, alors qu'il a fonctionné correctement dans Firefox.La solution qui a fonctionné pour moi a été d'ajouter un
Access-Control-Allow-Methods
- tête avec la valeurOPTIONS, GET, POST
. Poster cela ici, au cas où quelqu'un a le même problème à l'avenir et qu'aucune des autres solutions de travail.Pourriez-vous essayer cette s'il vous plaît?
À Gemfile
À config/application.rb
N'oubliez pas de redémarrer le serveur. Ensuite, il convient de travail.
J'ai utilisé rack de la scro d'un certain succès, assez simple à ajouter lorsque vous faites l'origine de la croix-ajax...
Le problème pourrait être dans 4 endroits différents ici. Nous allons commencer avec votre
<virthualhost
définition. Tout d'abord, il y a quelques modules et paramètres de configuration vous avez besoin d'avoir à même de permettre à votre serveur virtuel par définition à la mise en œuvre de ces paramètres.mod_headers
est activéAllowOverride
paramètre qui permet à vos vhosts pour remplacer votre défaut de la SCRO paramètresAprès que vous avez fait à la fois de ceux-ci, vous pouvez utiliser le
Access-Control-Allow-Origin
paramètre, à condition que vous utilisez également unDocumentRoot
directive