我正在尝试通过 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({
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,这对问题有影响吗?