我试图通过
AJAX调用从服务器获取
JSON数据.通话工作正常,但是
成功处理程序无法获取服务器生成的正确JSON数据,而是获取当前页面的所有HTML内容.
我的PHP代码($_POST [‘idFoto’]存在):
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);
我的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);
}
});
状态调用是“200 OK”.任何想法为什么这不适当?
更新:当通过URL执行脚本(手动分配idFoto)时,json_encode工作正常:
{“success”:true,”title”:”Demo
1″,”nombre”:”01.jpg”,”desc”:”Descripci\u00f3n foto demo
1.”,”date”:”07/24/13″}
但是,我把die(json_encode($response))放在脚本的末尾,Ajax Call继续回收完整的HTML.
注意:我使用Smarty和友好的URL,这会对问题产生影响吗?