0

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

ページでリロードを実行した場合。投稿パラメータは破棄されます

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 に答える