AJAX发布到Spring MVC控制器 - 错误

时间:2013-01-16 12:51:02

标签: jquery ajax post spring-mvc http-post

以下是将表单数据发布到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验证 - >网络和写入URL被触发。

有人可以解决的问题是什么?我的目标是将文件和数据一起发送到服务器。

1 个答案:

答案 0 :(得分:0)

您使用错误的参数contentType。请留下application/x-www-form-urlencoded

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

enctype="multipart/form-data"(参见this

示例:

<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>