开发者社区> 问答> 正文

JFinal的action里面如何获取ajax请求传递的JSon数据? 400 报错

JFinal的action里面如何获取ajax请求传递的JSon数据? 400 报错

JFinal中通过AJAX请求action ,如何在action中获取传递的JSon数据。

我在action中用getPara("pUser")的方式获取不到传递的值,求大神指导改如何获取ajax传递的pUser的值。

展开
收起
爱吃鱼的程序员 2020-05-30 17:03:09 833 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    data参数不是你这样写的吧

    data:{

    pUser:jsondata

    }

    好像是这个样子的吧。

    ######可以这样写,语法没问题######正解~######data:json=jsondata######data必须为 Key/Value 格式,类似于你get请求后附加的参数param1=1&param2=3######直接getPara("pUser")啊。如果你的是对象的话 你就 data:{"pUser.name":"xxx","pUser.ID":"xxx"}######先看一下控制台中的 JFinal action report,确保para 是有值的,如果有值,使用getPara 必定能获取到,如果没有值,则证明前端请求有错误######

    引用来自“JFinal”的答案

    先看一下控制台中的 JFinal action report,确保para 是有值的,如果有值,使用getPara 必定能获取到,如果没有值,则证明前端请求有错误

    您好,控制台的JFinal action report 显示没有参数值,如图:

    但是用Chrome调试工具 可以看到有发送请求参数,如图:

    而我ajax请求换种方式,在url中传参数,就会有值,如图:

    但是下面这种方式如果参数中有“/”的话,就不行。但是用上面那种传参又获取不到值,不知道为什么。麻烦大神帮忙看看。


    ######urlPara中不能包含 "/" 字符,因为 "/" 是 controllerKey、method、urlPara的分隔符。使用 POST请求,将数据通过input 域传递过来即可。如果想在url中传递包含 "/" 的参数,可以使用问号挂参的形式,如: /action?go=http://abc.com######我这个不是表单提交 是ajax异步下载附件 ajax参数传递的是附件路经 但通过上面那种方式传递参数在action里面获取不到 不知道为什么######

    引用来自“逝风123”的答案

    我这个不是表单提交 是ajax异步下载附件 ajax参数传递的是附件路经 但通过上面那种方式传递参数在action里面获取不到 不知道为什么
    ajax post 提交即可,注意不在url中传参,并非表单提交
    ######

    引用来自“JFinal”的答案

    引用来自“逝风123”的答案

    我这个不是表单提交 是ajax异步下载附件 ajax参数传递的是附件路经 但通过上面那种方式传递参数在action里面获取不到 不知道为什么
    ajax post 提交即可,注意不在url中传参,并非表单提交
    就是没有表单提交 也没有在ajax请求的url中传参 采用data的方式传参 但获取不到值
    ######这种情况即使是使用最基本的 servlet 技术也接收不到数据,因为JFinal对POST请求未做任何处理,仅仅是转调了 HttpServletRequest.getParameter(...)方法而已。JFinal Action Report中都不显示有数据过来,唯一的可能是前端有错误,看下请求是否被重定向过了
    2020-05-30 17:03:10
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载