场景:前后端分离跨域,前端使用axios提交post请求,参数json字串;服务端getRawData获取参数,转Model 对象处理数据。
前提:服务端设置了CORS 允许跨域请求
【示例】:
axios提交请求:
jobj是提交的业务参数 json对象:
let jobj = {}
jobj.type = 0
jobj.level = 2
jobj.name = '化妆盒'
jobj.parent_id = 16
接口:// 新增货品类目项
export const apiPostSpuCateItem = (jobj) => {
return new Promise((resolve, reject) => {
axios.request({
url: 'goods/cate/addSpuCateItem',
method: 'post',
headers: {
'Content-Type': 'text/plain' //这里重点
},
data: JSON.stringify(jobj)
}).then(res => {
// 接口处理成功返回 ok 这里自定义处理返回结果
let rst = { isok: false, msg: '' }
// state 为服务接口定义的返回属性
if (res.data.state === 'ok') {
// 这里定义业务需要转译的状态值
rst.isok = true
} else {
rst.isok = false
rst.msg = res.data.msg
}
resolve(rst)
})
})
jfinal 服务端 Controller:/**
* 新增货品分类
*/
public void addSpuCateItem(){
// 获取提交的json字串 参
String json = getRawData();
// 调用服务端处理 数据持久化
Ret ret = srv.addByModel(FastJson.getJson().parse(json, SpuCate.class));
renderJson(ret) ;
}
处理结果: