2013-01-16 71 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> 
相關問題