JFinal

登录 注册

前后端分离post传参问题

前端用的是axios,自己封装了一下,发送请求时这样写

api({
url: 'user/login',
method: 'post',
data: {
    firstName: 'Fred',
    lastName: 'Flintstone'
    }
}),在controller用getPara,getParaMap都接收不到,换成
api({
url: 'user/login',
method: 'post',
params: {
    firstName: 'Fred',
    lastName: 'Flintstone'
    }
})就可以了,有没有大神解释下,谢谢了


评论

  • 09-12 14:37
    前者是将 http 请求的 body 当成参数内容本身,后者是将参数弄成 form 表单提交的参数形式

    前者你可以当成是 HttpKit.post(string url, String data) 发的请求,后者你可以当成是在 html 页面中弄个 form 表单 submit 发的请求

    前者发的请求后端需要使用下面的方式获取:
    String jsonString = HttpKit.readData(getRequest());
    Map paraMap = FastJson.getJson().parse(Map.class, jsonString);

    jfinal 3.5 会新加一种获取方式:
    Map map = getRawDataTo(...);

    后者发的请求,就可以通过 getPara 系列这类常规方法获取了
  • 09-13 08:45
    问题解决了,谢谢波总,给jfinal点赞
  • 09-13 08:46
    parse方法需要把参数换一下位置
  • 发送