L'activation de la SCRO en application CakePHP
Je suis en train d'activer la SCRO pour un API intégré dans CakePHP, de sorte que toutes les demandes sont accessibles par la suite dans AppController:
public function beforeFilter()
{
header("Access-Control-Allow-Origin: *");
}
Est-ce dans le mauvais endroit? Comme les demandes sont toujours bloquée.
Mise à jour: Il semble que ce n'est en fait le travail, MAIS parce que je suis en train de faire quelque chose comme:
header('Content-Type: application/json');
echo json_encode(array('message'=>'Hello world!'));
Dans certaines de mes méthodes, elle agit comme si elle en substituant l'en-tête set AppController il n'est donc pas apparaître dans la réponse pour le JSON appels.
Des idées?
Mise à jour 2: le Retour JSON comme ci-dessous, résout le problème:
$this->response->type('json');
$this->response->body(json_encode(array('message'=>'Hello world!')));
Donc, apparemment, à l'aide de header()
dans le Gâteau des pauses en-têtes précédents?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez faire cela en utilisant le gâteau de réponse de l'objet;
Plus d'infos sur l'objet de la réponse;
http://book.cakephp.org/2.0/en/controllers/request-response.html#setting-headers
Cependant, la beforeRender() rappel semble plus logique.
Une autre option est d'ajouter cet en-tête dans votre vhost apache ou htaccess exemples peuvent être trouvés dans le fichier htaccess de Html5Boilerplate qui est très intéressant à regarder (bien documenté), parce qu'il contient beaucoup d'optimisations qui fonctionnent bien avec cakephp ainsi;
https://github.com/h5bp/server-configs-apache/blob/master/dist/.htaccess
http://html5boilerplate.com/
Basé sur ce que j'ai trouvé ici: L'envoi de corriger le contenu JSON type de CakePHP
La manière correcte de retour JSON dans CakePHP est comme suit:
C'est parce que les en-têtes peuvent être remplacés et, par conséquent, de la SCRO ne fonctionne pas sauf si vous le faites le " bon " chemin à l'aide de l'objet de réponse dans les gâteaux.