0

/partner/settings というバックエンド メソッドを呼び出して、次の 2 つのタスクのいずれかを実行するコードがあります。

  1. jQuery.load() メソッドが GET の場合、ダイアログの内容を返し、表示します
  2. この jQuery.load() メソッドが POST の場合、フォーム データを渡し、検証し、データベースに保存します。

私が直面している問題は、GET 操作になるはずの jQuery.load() を呼び出すと、代わりに POST が送信されることです。load() メソッドに POST データを渡していません。実際、最初に呼び出されたときは、期待どおりに GET を使用します。POST を使用するのは、次に呼び出されるときです。

.load() を .get() に変更して、これを修正しようとしました。どういうわけかまだ POST を実行しました (私のデバッグ コードは、実際に .get() メソッドを呼び出していることを示していますが、私の Chrome ネットワーク タブはそれを POST として記録しています)。

ご協力いただきありがとうございます。

$(document).ready(function() {
 showPartnerSettings = function(e) {
  window.gEnvPath = envPath;

  e.preventDefault();
console.log(e); 
    var post = (e.type == "click") ? false : true;

    if($("#partner-settings-form").length == 0) {
        var $dialogForm = $("<div />");
console.log('new dialog');
    } else {
        var $dialogForm = $("#partner-settings-form").unbind("submit");
console.log('existing dialog');
    }

    $dialogForm.attr("id", "partner-settings-form")
               .append($loading.clone());

    if(e.type == "submit") {  . . . } 
else //load new dialog form content
{

var partnerId = e.data.partnerId;
            $dialogForm.load(window.gEnvPath + "/partner/settingsdialog?partnerid="+partnerId, function(){ 
                $("#partner-settings-form").css("display", "block");
    console.log($dialogForm);
                $dialogForm.dialog({
                  title: "Partner Settings",
                  modal: false, 
                  resizable: false,
                  width: 580, //CPB 04.11.13
                  position:['middle',130],
                  dialogClass: "partner-settings-class",
                  create: function() {
                    $("#add_postage").on("click", function(e){ . . . })
                  },
                  close : function(){ 
                    var dialogid=$(this).parent("div").attr("id");
                    $("#Tabs ul li."+dialogid).remove();
                    $(this).remove();
                    $("#alertmod").remove();
                    //$link.removeClass('preventclick');
                  }
                })        
                .dialog("open")
                .css("display", "block");

                $(document).on("submit", ".sign_in_form", function(event) { 
                    event.preventDefault();
                    return showPartnerSettings(event); 
                });
                return false;
            });
        }
        return false;
      };
4

0 に答える 0