为什么jQuery.get()会提交POST请求?

时间:2013-08-22 19:20:19

标签: jquery ajax post dialog get

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

  1. 如果jQuery.load()方法是GET,则返回对话框内容并显示它
  2. 如果此jQuery.load()方法是POST,它会传递表单数据,验证它并将其保存到数据库中。
  3. 我遇到的问题是当我调用那个应该导致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;
          };
    

0 个答案:

没有答案