javascript - Ajax 回调没有返回

标签 javascript jquery ajax

<分区>

我试图创建一个 ajax 函数来每次获取数据库的一些参数,但是当我调用 ajax 方法时它没有正确返回,当我调试时值是正确的,但返回结果不是有效。

$(document).ready(function () {

  function foo(mod){
    var uri="some url";

    $.ajax({
      type: "GET",
      url: uri,
    }).done(function( data ) {
      return data;
    });
  }

  // alert to get the result is always printing undefined
  alert(foo("param_1"));

});

最佳答案

foo 无法返回 ajax 调用的结果,因为ajax 调用是异步foo 在调用完成之前返回。此外,done 处理程序中的 returndone 处理程序返回,而不是 foo

您需要让 foo 接受回调,然后调用它:

$(document).ready(function () {


  function foo(mod, callback){
    var uri="some url";

    $.ajax({
      type: "GET",
      url: uri,
    }).done(function( data ) {
      callback(data);
    });
  }

  // alert to get the result is always printing undefined
  foo("param_1", function( data ) {
      alert(data);
  });

});

或者,如果您在将其提供给回调之前真的根本不对其进行任何处理,您可以提供callback to done直接:

$(document).ready(function () {


  function foo(mod, callback){
    var uri="some url";

    $.ajax({
      type: "GET",
      url: uri,
    }).done(callback);
  }

  // alert to get the result is always printing undefined
  foo("param_1", function( data ) {
      alert(data);
  });

});

关于javascript - Ajax 回调没有返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19621952/

相关文章:

javascript - 将类元素恢复为默认值

javascript - 如何使用本地存储来记住输入值?

ajax - 通过表行启动方法

php - 使用 JavaScript/AJAX 将值从一个 PHP 文件发送到另一个

java - 如何使用 Rhino 桥接包含重载方法且可在 JavaScript 中索引的 Java 类?

javascript - Angular 5,平移管道不纯吗?

jquery - 为什么 slideUp 效果不适用于具有表格行显示的 div

javascript - Kendo UI 下拉菜单通过单击按钮上的参数进行更新

javascript - 如何在javascript中获取动态创建的文本框值

javascript - 如何将 Javascript 字典传递给 Controller ​​,其中 C# 字典值是一个对象