Jquery ajax appel à Cake PHP 3.0
Salut,
Je suis en train de faire une requête ajax à la vue à partir du contrôleur de B comme ceci :
Dans la vue d'Une :
var tab = new Array();
function updateResult(){
$.ajax({
type:"POST",
url:"<?php echo Router::url(array('controller'=>'B','action'=>'viewresult'));?>",
dataType: 'text',
async:false,
success: function(tab){
alert('success');
},
error: function (tab) {
alert('error');
}
});
}
Dans le contrôleur B:
public function viewresult()
{
echo 'SUCCESS';
}
Le problème est que dans la "réponse" de l'ajax, j'ai la "RÉUSSITE", mais aussi la totalité de la vue, je ne comprends pas pourquoi...
Je ne veux que la "RÉUSSITE"...
Merci d'avance !
ne pas echo put retourner 'SUCCÈS';exit(); et essayez de
OriginalL'auteur L_air | 2015-05-07
Vous devez vous connecter pour publier un commentaire.
La façon la plus simple pour y parvenir est l'ajout de
die()
à la fin de votre fonction de sorte qu'il empêche de charger toute la mise en page:OU
Mais plus classique est d'utiliser JSONView. Votre action doit se présenter comme suit:
Vous devez également charger
RequestHandler
composant dansinitialize()
méthode dans votre contrôleur:Vous avez besoin de définir des extensions autorisées pour toutes les routes connecté plus tard dans
routes.php
:Vous pouvez maintenant accéder à votre action de l'ajout de l'extension de
.json
à la fin de l'URL, si vous avez besoin de modifier appel ajax url:C'est tout, mais gardez à l'esprit que cette solution vous forcer à manipuler tableau JSON en réponse. Dans cet exemple, la sortie sera présente comme suit:
OriginalL'auteur marian0
Détecter si son ajax comme par code suivant dans cakephp façon :
Vérifiez ici pour plus de détecteurs http://book.cakephp.org/3.0/en/controllers/request-response.html#Cake\Network\Request::addDetector
Vous pouvez aussi utiliser $this->Url>compiler à la place de, y compris le Routeur pour créer des liens en vue.
vous avez sauvé ma journée. Fonctionne parfaitement
OriginalL'auteur Abhishek