先把問題描述一下,功能是使用ajax向後臺來提交數據,爲了向用戶進行很好的錯誤提示,後臺中將出現錯誤時的錯誤緣由返回給前端,前端使用jquery.form.js的ajaxsubmit來提交數據,並在success方法中提示"操做成功",在error方法中提示錯誤緣由。整個form提交的數據包括一些簡單的input和一個文件的上傳。前端
前端JSP:java
<input type="file" id="file" name="file" style="width:200" onchange="checkImageFile('file')">
JS提交:jquery
$("#wfAuditForm").ajaxSubmit({ type: 'post', url: "data/resource/picture/save" , success: function(data){ alert( "success"); $( "#wfAuditForm").resetForm(); }, error: function(XmlHttpRequest, textStatus, errorThrown){ alert( "error"); } });
當須要上傳圖片時,即file有值時點擊提交,結果會返回提交成功,即進入success: function(data)方法,但頁面卻報JS錯誤:ajax
而後一直在找問題所在,瀏覽器單步查看JQ源碼,發現當file類型有值時會進入fileUpload方法,而fileUpload是jquery的文件上傳方法,咱們的應用是使用UPC和UPA上傳文件的,估計是fileUpload的版本或者其它問題致使JS錯誤,而後錯誤被捕捉,因而進入了success方法。瀏覽器
解決方法:
1.直接使用$.ajax
2.file控件移出form
3.改jquery源碼,註釋fileUpload入口(不推薦)post