javascript - jquery ajax问题。 .done() 函数中的奇怪行为

标签 javascript jquery

我在我编写的简单 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/

相关文章:

javascript - 将新数据从 JSON 添加到现有表

javascript - jQuery 中的多个过滤器

javascript - 隐藏 Bootstrap 3 Modal 和 AngularJS 重定向($location.path)

javascript - 当 div 底部滚动到浏览器窗口底部上方时添加属性

javascript - NodeJS HTTP response.redirect 不存在?

javascript - 技术解释为什么反引号不适用于 import 语句

javascript - 如何通过将鼠标悬停在另一个元素上来更改一个元素?

jquery - 不使用jquery函数,我们可以得到mouseover的弹跳效果吗?

javascript - MutationObserver 回调何时触发?

javascript - 属性模板中的 Angular 字符串插值