0

任何人都知道如何在 windows.location.reload(true) 之后保留 post 参数?

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);
     } 
  });
}

如果我在页面上重新加载。post 参数将被销毁

4

2 回答 2

3

首先,您的方法对于 AJAX 是错误的;成功后不应该刷新页面,而是使用 jQuery 的 .html() 或 .load() 方法。

现在,如果您仍然想做同样的事情,那么它不能使用

window.location.reload(true);

改为使用

window.location.href

所以

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;
        }
    });
}
于 2011-10-11T07:38:02.293 回答
1

是的,你可以做到。只需将所有帖子变量放在页面上的隐藏形式中,如下所示:

<form action="" method="post" id="myform">
    <input type="hidden" name="my_var1" value="value_of_my_var1" />
    <!-- More inputs here.... -->
</form>

然后在完成 ajax 调用后提交表单:

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(){
        $('#myform').submit();
     } 
  });
}
于 2011-10-11T07:45:06.337 回答