我在我编写的简单 ajax/jquery 代码中看到了一些非常奇怪的东西,我无法解释为什么我看到了我所看到的内容。
我有一个名为complete.php的php文件,目前它唯一做的事情是:
echo "saved";
我有一个 jquery ajax 调用,它有一个 .done() 函数,如下所示:
jQuery.ajax({
type: "POST",
url: "complete.php",
data: "id=someIdHere",
}).done(function(d){
alert(d);
if(d == "saved"){
alert('loading done');
}else{
alert('error');
}
});
我的 Firebug 确认来自complete.php的响应已“保存”。
当我输入“d”响应时,它的类型为“string”,
但是由于某种原因,我在 .done() 函数中收到的警报是“错误”而不是“加载完成”。
if 语句之前的“alert(d)”给出“已保存”。
我在这里缺少什么?
最佳答案
您应该使用更强大的返回类型,例如 JSON:
header('Content-Type: application/json');
echo json_encode(array(
'status' => 'saved',
));
然后在您的成功处理程序中:
if (d.status == 'saved') { ... }
关于javascript - jquery ajax问题。 .done() 函数中的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14459040/