2013-01-16 39 views
0

下面是将表单数据发布到Spring Controller的两个片段。AJAX发布到Spring MVC控制器 - 错误

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号返回的响应。

URL自动占用上下文路径。我可以从Inspect Element - > Network验证哪些内容,并且写入URL会被触发。

任何人都可以得到什么样的问题?我的这个问题的目标是发送文件和数据到服务器。

+0

它看起来不错。你能指出我们在哪里可以看到它的行动吗?从上面很难说出什么问题。 – Archer

回答

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> 
相关问题