0

我有一些代码调用称为 /partner/settings 的后端方法来执行以下两项任务之一:

  1. 如果 jQuery.load() 方法为 GET,则返回对话框内容并显示
  2. 如果这个 jQuery.load() 方法是 POST,它会传递表单数据,对其进行验证,然后将其保存到数据库中。

我遇到的问题是,当我调用应该导致 GET 操作的 jQuery.load() 时,它会提交一个 POST。我没有将任何 POST 数据传递给 load() 方法。事实上,第一次调用它时,它按预期使用了 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