【问题标题】:Sending a variable with ajax call .done使用 ajax 调用 .done 发送变量
【发布时间】:2015-02-19 14:54:48
【问题描述】:

有没有一种可能的方式来发送变量“schedule_id[i]”,以及调用的结果。也可以在数据对象中添加这个变量吗?

我的代码:

for (var i = 0; i < schedule_id.length; i++) {

    //Ajax call
    $.ajax({
        url: "http://api.viewer.zmags.com/schedules/" + schedule_id[i] + "?key=" + api_key
    })

    //
    .done(function(data){

}

【问题讨论】:

  • 在循环中执行 ajax 调用是不好的做法。一次调用即可获取所有需要的时间表,然后在本地循环遍历结果集。

标签: javascript ajax call


【解决方案1】:

所以您需要以同步方式进行异步 ajax 调用,对吗?

所以你需要创建一个单独的函数,调用ajax请求并返回结果并在后续请求中使用。

点赞:-

for (var i = 0; i < schedule_id.length; i++) {
    var result;
    if (i == 0)
        result = callfunction(0,schedule_id[i]);
    else
        result = callfunction(result,schedule_id[i]);
}

function callfunction(passresult,schedule_id) {
    $.ajax({
        url: "http://api.viewer.zmags.com/schedules/" + schedule_id + "?key=" + api_key
    })
  .done(function (data) {
      return data;
  });
}

【讨论】:

  • 无法知道 schedule[i] 因为你关闭了 for 循环?
  • 好的,请检查答案
【解决方案2】:

像这样构造 ajax 调用:

$.ajax({
    url: 'http://api.viewer.zmags.com/schedules/',
    type: 'POST' // or GET,
    data: {
        schedule_ids: schedule_id, //array
        key: api_key
    },
    success: function (data) {
        //success callback
    }
});

【讨论】:

    猜你喜欢
    • 2017-11-01
    • 1970-01-01
    • 2011-12-25
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-21
    • 2021-05-22
    相关资源
    最近更新 更多