javascript - 使 AJAX 调用在多种方法中使用

标签 javascript jquery ajax

我必须进行大量 AJAX 调用,并希望设置一个简单的方法来处理这个问题。我创建了以下内容

function testingAjax(url) {
  $.ajax({
    type: "GET",
    contentType: "application/json; charset=utf-8",
    url: url,
    data: "{}",
    dataType: "json",
    success: function(data) {
      //alert(data);
      return data;
    },
    error: function(err) {
      alert('error')
    }
  });
};

当我打电话testingAjax时从另一种方法,我得到 Undefined错误,但是当我从 testingAjax 内部发出警报时这是正确的。

function testingCall(){
    var data = testingAjax(url);
    alert(data);
}

基本上,我想从 AJAX 调用返回数据,并在其他地方解析它。我做错了什么?

最佳答案

您需要添加一个回调参数(这是一个函数)并将其传递给 success 来代替您已有的参数。

function testingAjax(url, cb) {
  $.ajax({
    type: "GET",
    contentType: "application/json; charset=utf-8",
    url: url,
    data: "{}",
    dataType: "json",
    success: cb,    
    error: function(err) {
      alert('error')
    }
  });
};

使用它:

testingAjax('myurl', function(data) {
  console.log(data);
});

这将获取成功回调的值,并立即将其作为参数传递给您的自定义回调,这将允许您访问数据

关于javascript - 使 AJAX 调用在多种方法中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35164031/

相关文章:

javascript - jQuery UI slider 问题

php - Jquery、Ajax、php、Datatable UTF-8 编码问题

javascript - 需要优雅的方式从 Javascript 中的 json 映射中提取字符串形式的值

javascript - blueimp gallery 默认设置指示器

javascript - Typescript - "this"关键字错误

jquery - 更改 JQuery slider 的背景颜色

javascript - 如何使用 jquery 在 Cypress 测试中获取 div 'text' 值

jquery - 如何用jquery更改属性替换表单中的提交?

javascript - 来自 AJAX 的 AngularJS Controller 数据 - 并不总是有效

javascript - Immutable.js .map 在一次迭代中返回多个元素