Ajax retour complet de la page html
im essayant d'obtenir un JSON données depuis le serveur via un appel AJAX. L'appel fonctionne très bien, mais
le gestionnaire de succès de ne pas obtenir les bonnes données JSON généré par le serveur, au lieu de cela, obtenir tout le contenu HTML de la page en cours.
Mon Code PHP ($_POST['idFoto']
existe):
header('Content-type: application/json');
$fotos = FotoQuery::Create()->findByIdfoto($_POST['idFoto']);
if($fotos->count() != 1){
die("{success: false, msg: 'Error interno, foto no encontrada unívocamente.'}");
}
$foto = $fotos->getFirst();
$response = Array('success'=>true,'title'=>$foto->getTitulo(),'nombre'=>$foto->getNombre(),
'desc'=>$foto->getDescripcion(),'date'=>$foto->getFecha());
echo json_encode($response);
Mon appel Ajax:
$.ajax({
url: document.domain +"/private/ajaxRequests/fotoRequestHandler.php",
method: "POST",
data: {idFoto: picId},
success: function(data,status,request) {
console.log(data);
console.log(status);
console.log(request);
}
});
L'appel d'état est "200 OK". Des idées pourquoi cela fonctionne pas de manière appropriée ?
Mise à JOUR: Quand exécuter le script via l'URL (avec un idFoto attribuées manuellement) le json_encode
fonctionne très bien:
{"succès":true,"title":"Démo
1","nombre":"01.jpg","desc":"Descripci\u00f3n foto démo
1.","date":"07/24/13"}
Mais, j'ai mis die(json_encode($response))
à la fin de script, Ajax Appel continue reciving HTML complet.
REMARQUE: Im utilisation de Smarty et les URLS, ce que cela a un impact sur le problème ?.
merci pour la réponse, im oublier d'écrire le fil. Quand j'ai mis
dataType: 'json'
la console.le journal ne s'exécute et la réponse sont toujours en html (à vérifier vis Chrome Dev Tools).essayez
die(json_encode($response));
merci, je l'ai mise à jour le fil, avec votre suggérer.
OriginalL'auteur ramiromd | 2013-11-14
Vous devez vous connecter pour publier un commentaire.
De l'essayer. Nettoyez d'abord de la mémoire tampon, puis les imprimer au format json. À la fin de la sortie!
OriginalL'auteur MahdiY
J'ai trouvé le problème, modifiez l'url de la propriété de l'Ajax par
"/private/ajaxRequests/fotoRequestHandler.php"
. Et fonctionne très bien !.OriginalL'auteur ramiromd