它始终转到.fail路径..即使PHP文件只是或打印为null;
这是我现在的代码。
$.ajax({
url: 'ajax/getValues.php',
type: 'post',
dataType: 'json',
data: { clickedId: "clickedId" },
})
.done(function(datos){
alert("OK");
$("#titulo").val(datos.titulo);
$("#precio").val(datos.precio);
})
.fail(function() {
alert("fail");
})
})
PHP请求:
$con = mysqli_connect('localhost','root','','clarodeluna');
$id=$_POST['clickedId'];
$sql = "SELECT titulo, precio FROM coleccion WHERE id=$id";
$result=$con->query($sql);
while($row = mysqli_fetch_assoc($result)){
$titulo = $row['titulo'];
$precio = $row['precio'];
$datos = array(
"titulo" => $titulo,
"precio" => $precio,
)
};
header('Content-Type: application/json');
print json_encode($datos);
如果我将dataType从json更改为html,它不会转到.fail回调函数..所以我猜它必须是JSON格式,但我重复一遍,如果我只是在php中写print null或print {}用失败的文件记录它仍然是
答案 0 :(得分:0)
您遇到语法问题,并且在输出任何内容后无法设置标题
如果您在浏览器开发工具网络中检查请求,则很可能您当前看到500错误状态
尝试更改为以下内容:
{
"errors": [
{
"code": 32,
"message": "Could not authenticate you."
}
]
}
这都假设您的ajax数据中正确定义了 $datos = array(
"titulo" => $titulo;
"precio" => $precio;
);// added `;`
header('Content-Type: application/json');// header before output
echo json_encode($datos);
使用浏览器开发工具检查实际请求作为第一行调试,以查看状态,发送/返回的内容等
答案 1 :(得分:0)
最后我明白了!
$.ajax({
url: 'ajax/getValues.php',
type: 'post',
dataType: 'json',
data: { clickedId: "clickedId" }, **THIS WAS WRONG!**
})
应该是
data: { "clickedId": clickedId }
谢谢大家!