jquery: Uncaught TypeError: Illegal invocation

jquery: Uncaught TypeError: Illegal invocation

当我尝试将我的表单提交到服务器端代码的操作时遇到问题,如下所示:

   [ValidateAntiForgeryToken]
   public async Task<ActionResult> DoRegister(UserRegistrationViewModel model)
   {
     // Some code here
   }

表单也包含 Html.AntiForgeryToken(),所以这不是问题。 jQuery 代码如下所示:

 $('form').submit(function (event) {
        event.preventDefault();

        if ($(this).valid()) {

            StartLoading();
            var formdata = new FormData($(this).get(0));
            $.post("/User/DoRegister",formdata, function (data) {
                $(".registerLoader").fadeOut("fast");
                if (data.statusCode == 200) {
                    window.location.href = "/Plans";
                }
                else if (data.statusCode == 100) {
                    $("body").html(data.View);
                }
            });
        }
        return false;
    });

当我尝试提交表单时出现以下错误:

jquery: Uncaught TypeError: Illegal invocation 

我在这里做错了什么?有人可以帮我吗?

问题是您传递的是 HTML 元素而不是它的值。您可以使用 serializeArray

var formdata = $("form").serializeArray();

The .serializeArray() method creates a JavaScript array of objects, ready to be encoded as a JSON string. It operates on a jQuery collection of forms and/or form controls.