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

逝风123 发布于 2013/11/08 14:41
阅读 6K+
收藏 1

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

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

加载中
0
菜根乱谭
菜根乱谭

data参数不是你这样写的吧

data:{

pUser:jsondata

}

好像是这个样子的吧。

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

引用来自“JFinal”的答案

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

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

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

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

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


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

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

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

引用来自“JFinal”的答案

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

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