Ajax post to same page and reload the page without destroying the post parameters

Elmer Lin picture Elmer Lin · Oct 11, 2011 · Viewed 8.4k times · Source

Anyone knows how to preserve the post parameters after windows.location.reload(true) ?

function handler(event,ui)
{
  $(this).find(".thumb").remove();
  $(this).append('<img class="thumb" src="'+ui.draggable.attr('src')+'">');

  imageurl = ui.draggable.attr('src');

  $.ajax({
     type: "POST",
     url: 'www.check.com.sg/', 
     data: {name: imageurl}, 
     complete:function(){
        window.location.reload(true);
     } 
  });
}

If i do a reload on the page. the post parameters will be destroy

Answer

Borderless.Nomad picture Borderless.Nomad · Oct 11, 2011

First your approach is wrong for AJAX; one shouldn't refresh the page after success instead use .html() or .load() method of jQuery.

Now if still you want to do the same then it can't be done using

window.location.reload(true);

instead use

window.location.href

So

function handler(event, ui) {
    $(this).find(".thumb").remove();
    $(this).append('<img class="thumb" src="' + ui.draggable.attr('src') + '">');
    imageurl = ui.draggable.attr('src');
    $.ajax({
        type: "POST",
        url: 'www.check.com.sg/',
        data: {
            name: imageurl
        },
        complete: function() {
            var currentURL = window.location.href + '?var1=' + var1 + '&var2=' + var2;
            window.location.href = currentURL;
        }
    });
}