在jquery ajax之后刷新页面

时间:2013-08-08 16:44:03

标签: javascript jquery ajax refresh

我试图在jQuery AJAX调用之后刷新页面。在发送所有数据之前,页面似乎是刷新的(仅在某些时候)。任何人都可以通过下面的代码片段了解原因。我在成功函数中有刷新代码,所以我很困惑。

我尝试添加async = false,但这似乎也无效。

function sendRating(rating, reload_on_return) {

$.ajax({
    type: "POST",
    dataType: 'json',
    url: window.url_root + cid + "/",
    data: {
        "rating": rating.r2 / 100.0
    },
    success: function(data) {
        if (data.hasOwnProperty('success')) {
            console.log("data was sent!");

            if (reload_on_return) {
                    location.reload();

            }

        }
    },
    error: function() {
        console.log("Data didn't get sent!!");
    }
})

1 个答案:

答案 0 :(得分:13)

你可以做一个setTimeout,让它在刷新可以执行之前等待一瞬间。

function sendRating(rating, reload_on_return) {

$.ajax({
    type: "POST",
    dataType: 'json',
    url: window.url_root + cid + "/",
    async: false,
    data: {
        "rating": rating.r2 / 100.0
    },
    success: function(data) {
        if (data.hasOwnProperty('success')) {
            console.log("data was sent!");

            if (reload_on_return) {
                setTimeout(
                  function() 
                  {
                     location.reload();
                  }, 0001);    
            }

        }
    },
    error: function() {
        console.log("Data didn't get sent!!");
    }
})