Bonsoir.
Le problème n'est pas lié à CakePHP directement, lorsque l'on essaie de faire une requête sur un serveur distant qui n'est pas situé dans le même domaine, il y a la protection par défault, donc si tu veux pouvoir faire des requêtes ajax dessus, il te faut l'autoriser sur ton application CakePHP, voir ici pour CakePHP : Les Objets Request & Response » Définir les En-têtes de Requête d’Origine Croisée (Cross Origin Request Headers = CORS).
Bonjour,
je suis entraind e faire une application mobile androis avec cordova, j'ai crée un api sous cakephp sur un serveur distant, quand j'envoie une requete post par ajax au serveur un message d'erreur dans le console, malgré mes recherches sur google je ne m'ensors pas.
l'erreur est la suivante: Blocage d’une requête multi-origines (Cross-Origin Request) : la politique « Same Origin » ne permet pas de consulter la ressource distante située sur http://www.nomdedomaine.com/api/users/login. Raison : l’en-tête CORS « Access-Control-Allow-Origin » est manquant.
voici mon code d'envoie
Comment je peux résoudre ça?
merci
13 réponses
Bonsoir merci pour la réponse,
je viens de mettre le code pour l'activation de cros domain, mais j'ai toujours la meme erreur:
la manoère dont k'ai procéde
voici mon code:
public function login(){
$this->response->header('Location', 'http://wwww.jpbbeurpro.com/api/users/login');
$this->autoRender=false;
$this->response->type('json');
$this->response->body(json_encode(array('message'=>'Hello world!')));
}
J'ai bien procedé?
Merci
Tu es bien sur d'avoir regarder le chapitre consacré dont je t'ai donné le lien ?
Car dans le code que tu montres, tu n'utilises absolument pas ce qui est dans le chapitre.
Bonjour,
le lien que tu m'avais donné est pour cakephp 3 si je ne me trompe pas, moi je suis sur cakephp 2.x
rien a voir avec cakephp. c'est au niveau de ton serveur web. apache ou nginx.
moi j'utilise nginx et j'ai rajouté ca dans mon vHost
a toi de rajouter les $request_method qui vont bien (notamment pour le PUT, le DELETE etc...)
keulu merci pour ta réponse, mais je suis un hébergement mutualisé one.com, je peux utiliser ta soluation?
Advancid, je suis cakephp 2.x comment je peux gerer ça, apres mes recherches sur google avec ce code certaines personnes ont corrigé le problème
mais chez moi ça ne marche toujours pas
Yo,
l'as tu préciser également côté Cordova (config.xml) ?
non je n'ai pas précisé ça dans config.xml faut que je le fasse labas aussi?
je peux pas être catégorique car je suis débutant mais dans mon config.xml j'ai çà :
<access origin="*" />
j'ai ça aussi
Yo!
Il faut tout simplement rajouter un header.
Au niveau de ton AppController tu ajoutes ceci:
Merci ça marche