1

我想在成功函数中发出一个 ajax 请求,但我需要向它传递一个不同的“guidlist”。

$.ajax({
    url: "my.ashx",
    datatype: 'json',
    type: 'post',
    data: {
        cmd: 3, //poll database for job status
        guidlist: guidList
                },
    success: function(){
    $.ajax(this);<-all the same except I need to change what i am passing in for guidlist
}
})
4

4 回答 4

0

创建一个函数来发送请求 - 然后从处理程序内部递归调用它success。不过要小心避免无限循环。

function sendRequest(param) {

    $.ajax({
        url: "my.ashx",
        datatype: 'json',
        type: 'post',
        data: {
            cmd: 3, //poll database for job status
            guidlist: param
                    },
        success: function(){
            if(param == [something])
                sendRequest(newParam);
        }
    });
}

sendRequest(guidList);
于 2013-08-07T14:51:24.563 回答
0

我猜你的脚本返回你想要传递给另一个ajax调用的json。所以试试这个:

function myAjaxSend(param) {
    $.ajax({
        url: "my.ashx",
        datatype: 'json',
        type: 'post',
        data: {
            cmd: 3, //poll database for job status
            guidlist: param
        },
        success: function(json) {
            // condition to prevent infinit loop
            if(json.otherParam !== undefined) {
                myAjaxSend(json.otherParam);
            }
        }
    })
}
于 2013-08-07T14:49:52.907 回答
0

关键是在第一个 ajax 调用的成功函数中进行第二个 ajax 调用。此外,如果需要,可以在第二个 ajax 调用中引用从第一个 ajax 调用接收到的数据。请参阅下面的示例:

$.ajax({
    url: "my.ashx",
    datatype: 'json',
    type: 'post',
    data: {
        cmd: 3, //poll database for job status
        guidlist: guidList
    },
    success: function(whatigotback) {
        $.ajax({

            url: "my.ashx",
            datatype: 'json',
            type: 'post',
            data: {
                cmd: 3, //poll database for job status
                guidlist: whatigotback
            },
            success: function(newgotback){
                //alert(newgotback);
            } //END 2nd success
        }); //END second AJAX
    } //END 1st success callback
}); //END first AJAX
于 2013-08-07T14:52:25.297 回答
0

只需在再次发送之前修改选项。

$.ajax({
    url: "my.ashx",
    datatype: 'json',
    type: 'post',
    data: {
        cmd: 3, //poll database for job status
        guidlist: guidList
    },
    success: function(){
        this.data.guidlist = anotherguidlist;
        $.ajax(this);
    }
})
于 2013-08-07T15:11:17.563 回答