0

下面是将表单数据发布到 Spring Controller 的两个片段。

1.

$("#formData").submit(function(event){ 
            event.preventDefault();
            var jqxhr = $.post("submitdata", $("#formData").serialize(), function(data){ 
                console.log(data); 
            }) 
            .success(function() { 
                // Success
            }) 
            .error(function() {  
                // Error 
            }); 
            jqxhr.complete(function(){ 
                //Ajax Process complete... 
            }); 
        }); 

2.

$("#formData").submit(function(event){ 
            event.preventDefault();
            var request = $.ajax({
                url: "submitdata",
                type: "post",
                data: $("#formData").serialize(),
                cache: false,
                contentType: "multipart/form-data",
                success: function(data){
                    alert(data);
                }
            });
        });

1 号发布成功并显示响应,而2 号返回404

URL 自动占用上下文路径。我可以从 Inspect Element -> Network 进行验证,并触发写入 URL。

任何人都可以解决什么问题?我解决这个问题的目的是将文件与数据一起发送到服务器。

4

1 回答 1

0

您使用了错误的参数contentType。把它留给application/x-www-form-urlencoded.

问题出在您的表单定义中。要将文件发送到服务器,只需使用第一个并将此属性放入<form>标签:

enctype="multipart/form-data"见此

例子:

<form action="demo_post_enctype.asp" method="post" enctype="multipart/form-data">
    First name: <input type="text" name="fname"><br>
    Last name: <input type="text" name="lname"><br>
   <input type="submit" value="Submit">
</form>
<script>
    $.post("submitdata", $("#formData").serialize(), function(data){ 
        console.log(data); 
    });
</script>
于 2013-01-16T13:28:31.797 回答