Pourquoi le message d'erreur est généré:
Le code JavaScript est limitée par la même la politique de l'origine, du sens, à partir d'une page à l' www.example.com
, vous ne pouvez le faire (AJAX) les demandes de services situé à exactement le même domaine, dans ce cas, exactement www.example.com
(pas example.com
- sans l' www
- ou whatever.example.com
).
Dans votre cas, votre code Ajax est en train d'atteindre un service en http://wordicious.com
à partir d'une page située à l'adresse http://www.wordicious.com
.
Bien que très similaires, ils sont pas du même domaine. Et quand ils ne sont pas sur le même domaine, la demande ne sera réussi que si la cible respose contient un Access-Control-Allow-Origin
- tête.
En tant que votre page/service à http://wordicious.com
n'a jamais été configuré pour présenter un tel en-tête, ce message d'erreur est affiché.
Solution:
Comme l'a dit, l'origine (d'où le JavaScript est) et la cible (d'où le JavaScript est en essayant de l'atteindre), les domaines doivent être l' exact même.
Votre cas semble être une faute de frappe. Ressemble http://wordicious.com
et http://www.wordicious.com
sont en fait le même serveur/domaine. Donc, pour corriger, le type de la cible et de l'origine de manière égale: vous faire Ajax demande de code pages/services http://www.wordicious.com
pas http://wordicious.com
. (Peut-être la place de l'URL cible relativement, comme '/login.php'
, sans le de domaine).
Sur un plan plus général:
Si le problème n'est pas une faute de frappe comme celui de cette question semble être la solution serait d' ajouter l' Access-Control-Allow-Origin
pour le domaine cible. Pour l'ajouter, dépend, bien sûr, de du serveur/langue derrière cette adresse. Parfois, une variable de configuration dans l'outil fera l'affaire. D'autres fois, vous aurez à ajouter les en-têtes à l'aide de code vous-même.