在ajax成功函数中覆盖变量,在外部警告 - Jquery

时间:2014-04-02 04:10:53

标签: jquery ajax

假设我有一个名为 nom 的变量,其值为 lol

var nom = "lol";

然后我有这个ajax函数,如果数据为false,我想覆盖 nom 的值为 whay ,假设数据为 false < /强>

$.ajax({ type: "POST", url: "micro/wave.php",
    data: { username: "some string" },
    success: function(data) {
        if (data == false) {
            nom = "whay";
        }
    }
});

然后,如果我提醒变量 nom ,它仍会提醒 lol ,它应该提醒 whay ,因为数据是错误的。

alert(nom);

这个东西的任何解决方案?

3 个答案:

答案 0 :(得分:0)

如果您没有指定dataType,则很可能是字符串。因为("false" == false)是假的

这样做:

success: function(data) {
        if (data == "false") {
            nom = "whay";
        }
    }

此外,alert应成功处理。因为Ajax中的A表示异步

答案 1 :(得分:0)

Ajax是一个异步请求,如果您将警报置于成功事件之外,它将不会等待成功事件发生。因此它会提醒先前的值。所以试试这个

$.ajax({ type: "POST", url: "micro/wave.php",
data: { username: "some string" },
success: function(data) {
    if (data == false) {
        nom = "whay";

    }
  alert(nom);
}
});

答案 2 :(得分:0)

有些事情可能会出错......

您正在某处未正确创建变量。

您忘记了默认情况下ajax是异步的,因此警报功能在成功功能之前运行...您可以更改它。

您的成功函数仅在请求成功时运行,而不是在出现任何错误时...如果您希望它失败则该函数将不会执行使用.done。