重新发送ajax请求只更改一个属性

时间:2013-08-07 14:46:29

标签: jquery

我想在成功函数中创建一个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 个答案:

答案 0 :(得分: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);
            }
        }
    })
}

答案 1 :(得分: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);

答案 2 :(得分:0)

关键是在第一个ajax调用的success函数内进行第二次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

答案 3 :(得分: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);
    }
})