javascript - jQuery AJAX 回调函数未按预期工作 :

标签 javascript jquery ajax

我正在尝试从 AJAX 调用的成功部分获取数据。所以我尝试为此目的编写一个回调函数。我有这个代码:

  var data2;
  $(function () {
    function callback(data) {
      console.log(data);
      data2 = JSON.parse(data);
      console.log(data2);
    }

    $("myForm")
      .submit(function (event) {
        $.ajax({
          type: 'POST',
          url: "/...",
          data: "JASON",
          success: callback
        });
      });

    console.log(data2);

  });

在控制台中我按顺序看到了这一点: 未定义data的内容和data2的内容。

我不明白的是,为什么我一开始会得到undefined?我不应该首先获取 data 的值吗?为什么最后一个console.log先执行?最重要的是,我从 AJAX 调用获取数据的方法是否正确?我还能做什么来获取数据?谢谢。

最佳答案

AJAX 调用是异步的,这意味着调用完成后,代码将在调用完成之前继续执行下一步。

因此,当进行 AJAX 调用时,会到达 console.log(newdata2);,我的猜测是 newdata2 未定义。

在一段时间后(即使是很短的时间),调用将得到响应并且回调函数将被调用。

关于javascript - jQuery AJAX 回调函数未按预期工作 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43781614/

相关文章:

javascript - 如何将焦点放在多选框中的选项上

javascript - Redux reducers 初始化相同的状态键

javascript - 将表单数据存储在数组中?

jquery - 让 Jquery 函数等待动画完成

javascript - AJAX 从多个数组中获取 PHP 输出

ajax - 使用 Ajax 时,服务器响应状态为 500(内部服务器错误)

来自 Knockout.contextmenu 的 Javascript 函数调用

javascript - 为什么这个 javascript 代码有一个无限循环?

javascript - 动画不适用于外循环

c# - 对象引用未设置为 Webservice 中对象的实例