拦截形成POST字符串并通过AJAX发送

dat*_*ion 12 javascript forms jquery

是否可以截取表单的POST字符串并通过AJAX发送它?我可以使用$('form').submit()拦截POST事件,但我看不到我可以从哪里获取POST字符串.我可以从表单的输入中重现字符串,但这看起来很可疑.

Pee*_*Haa 22

// capture submit
$('form').submit(function() {
     var $theForm = $(this);

     // send xhr request
     $.ajax({
         type: $theForm.attr('method'),
         url: $theForm.attr('action'),
         data: $theForm.serialize(),
         success: function(data) {
             console.log('Yay! Form sent.');
         }
     });

     // prevent submitting again
     return false;
});
Run Code Online (Sandbox Code Playgroud)

请注意,正如菲尔在他的评论中所说.serialize(),不包括提交按钮.如果您还需要提交buton的值,则必须手动添加它.

  • 请注意,`serialize()`将不包括单击提交表单的按钮.这可能是要发送的重要数据,特别是如果按钮具有"name"属性 (4认同)