ajax请求后立即重定向

时间:2014-01-19 18:49:14

标签: javascript jquery ajax jquery-mobile

我想在数据库中添加一些信息。如果数据库已经有一些信息,您可能不会添加一些信息。

$(document).on("pagecreate", "#RDpage",function(){  
    $("#submitR").click(function() {
        $.getJSON("http://xxx:8080/getRD", function(data) {

            if (data.length == 0) {
                // send data to server
                $.ajax({
                    url: "http://xxx:8080/addRD",
                    type: 'GET',
                    contenttype:'application/json; charset=utf-8',
                    data: {
                        user:user,
                        RD:"Test"
                   },
                   dataType:'JSON'
                });
                $.mobile.changePage("#dialogAddRD", { transition: "pop", role: "dialog" });
            } else {
                $.mobile.changePage("#dialogExistingRD", { transition: "pop", role: "dialog" });
            }

        });
    })
});

实际上它有效,但不是重定向。

我点击按钮,它将数据发送到服务器, dialogAddRD显示1秒。我无法点击它。然后我将被重定向回RDpage。

通常,对话框应保持打开状态,然后,我可以单击按钮转到另一个页面

1 个答案:

答案 0 :(得分:1)

ajax-function是异步的,将返回一个promise。如jQuery docs中所述,您可以使用它:

$.ajax({
    url: "http://xxx:8080/addRD",
    type: 'GET',
    contenttype:'application/json; charset=utf-8',
    data: {
        user:user,
        RD:"Test"
   },
   dataType:'JSON'
})
.done(function( data ) {
    $.mobile.changePage("#dialogAddRD", { transition: "pop", role: "dialog" });
});