Ajax 提交form方式可以將form表單序列化 然後將資料通過data提交至後台,例如:
$.ajax({ url : "http://localhost:8080/", type : "POST", data : $( '#postForm').serialize(), success : function(data) { }, error : function(data) { } }); 但是這種方式如果表單中有需要提交的檔案類型 這樣則不行 後台接不到資料。
解決辦法:使用 FormData。這裡使用jquery 最好使用2.0版本之後 之前應該不支援。例如:
<form id="form"> <P class="p5"><span><i>*</i>商戶認證:</span> <input type='text' name='apiclientType' id='textfield' class='w_txt' > <input type='button' class='w_btn' value='上傳認證' /> <input type="file" name="fileField" class="w_file" id="fileField" size="28" onchange="document.getElementById('textfield').value=this.value" /> </P></form>
var formData = new FormData(document.getElementById("form"));//表單id$.ajax({ url: '${ctx}/wmManage/saveWeixinConfig.do' , type: 'POST', data: formData, async: false, cache: false, contentType: false, processData: false, success: function (result) { }});
附上後台資料接收:
@RequestMapping("/saveWeixinConfig")@ResponseBodypublic ResultMsg saveWeixinConfig(@RequestParam(value = "fileField",required = false)MultipartFile fileField) throws IOException { return "";}