之前通過視頻學習了formdata。但是在自己使用時候出現了問題。
前端
$('#submit').click(function(){
var book = {};
book.name = $('#name').val();
book.author =$('#author').val();
book.category ={
id : $('#category').find('option').not(function(){
return !this.selected;
}).data('id')
};
var formData = new FormData();
formData.append('book',JSON.stringify(book));
$.ajax({
url:'/increase',
type:'POST',
data:formData,
contentType:false,
processData:false,
cache:false,
success:function(data){
if(data.success){
alert('提交成功!');
}else{
alert('請求失敗');
}
}
});
new出來了一個formdata物件,并append了一個book的String字串
問題出在 后端獲取的時候 我用的是 request.getParameter(“book”)發現在name的值沒用寫錯的情況下根本獲取不到book字串
查閱相關資料發現 原來 初始的formdata是不支持用request獲取的,想用獲取到內容 必須依賴相關的jar 和配置才行
pox檔案需要引入common-fileupload
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>${commons-fileupload.version}</version>
</dependency>
spring 的組態檔需要以下配置
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="https://bbs.csdn.net/topics/utf-8"></property>
<!-- 1024 * 1024 * 20 = 20M -->
<property name="maxUploadSize" value="https://bbs.csdn.net/topics/20971520"></property>
<property name="maxInMemorySize" value="https://bbs.csdn.net/topics/20971520"></property>
</bean>
二者缺一不可
以上是對formdata的應用
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/256101.html
標籤:Web 開發
