0

我想知道如何将值从 ajax 函数传递到另一个 ajax 我已经尝试过这段代码,但它不起作用。任何人都知道如何以正确的方式做到这一点?谢谢!

    $("#button").click(function(){
    var passedValue = '';
    $.ajax({
        url://
        type://
        success:function(data){
            if(typeof==="object"){
            for(var i=0;i<data.length;i++){
                passedValue = data[i]["passedThis"];
            }
        }
    }
    });
    $.ajax({
        data: { receivedPassed: passedValue;}
    });
});
4

2 回答 2

2

这些请求是异步的,因此passedValue在发送第二个请求时还没有准备好。您可能希望按顺序发送它们:

$("#button").click(function() {
    $.ajax({
        url: //
        type: //
        success: function(data) {
            var passedValue;

            if(typeof (?) === "object") {
                for(var i = 0; i < data.length; i++) {
                    passedValue = data[i]["passedThis"];
                }

                $.ajax({
                    data: { receivedPassed: passedValue }
                });
            }
        }
    });
});

此外,您passedValue每次都在通过该循环进行覆盖。您的意思是+=代替=, 还是使用数组或其他什么?

于 2012-09-16T16:31:56.453 回答
1

使用 链接 AJAX 调用.then(),并使用 过滤从第一个调用到第二个调用的数据.pipe()

$("#button").click(function() {
    $.ajax({
      url: //
      type: //
    }).pipe(function (data) {
      var passedValue = [];
      for (var i = 0; i < data.length; i++) {
        passedValue[i] = data[i]["passedThis"];
      }
      return passedValue;
    }).then(function (receivedPassed) {
      $.ajax({
        data: { receivedPassed: passedValue }
      }
    }
});

另请注意,.success()回调将在 jQuery 1.8 中弃用:

弃用通知:jqXHR.success()jqXHR.error()jqXHR.complete()回调将在 jQuery 1.8 中弃用。

于 2012-09-16T16:48:28.737 回答