Jfinal处理 axios post表单提交的那些坑

环境 JF3.3  vue+axios表单提交

 

submit: function(event){
	  		var formData = new FormData(event.target);
	  		console.info(formData);
	  		axios.post('cart/addAdsReturnJsonObj',formData)
			.then(function (res) {
				console.info(res.data);
			})
			.catch(function (error) {
				console.log(error);
			});
	  	}

JF后台取不到值,查看原因

Content-Type: multipart/form-data

JFinal取这个要先getFile一下,但是我这表单中没有文件需要上传,都是普通文本。结果getFile哪里报错

 

解决办法:

 HttpKit.readData(getRequest()),得到String 再依赖common包做解析。(本人不喜欢引入太多jar包)

第二种办法

axios.post('cart/addAdsReturnJsonObj',{name:'123',mobile:'123'})

Content-Type 为application/json

String data =  HttpKit.readData(getRequest());
Test t = FastJson.getJson().parse(data, Test.class);
System.out.println(t.getName());

阿里的json包项目中已有。无需重新导入,但是需新建class

 

第三种办法(推荐,适合表单项较少)

axios.post('cart/addAdsReturnJsonObj','name=hehe&mobile=10')

手动拼接

Content-Type  application/x-www-form-urlencoded

JFinal可通过getPara获取

你可能感兴趣的:(vue,JFinal)