在jfinal中应如何获取前端ajax提交的Json数据?
@JFinal 你好,想跟你请教个问题:
前端ajax提交代码:
var lcPostData='{"id":1,"qty":2}' var url="gallery/updateCartItem"; $.ajax({ contentType: "application/json", url:url, type:'post', data:lcPostData, timeout : 20000, success:function(data){ if(data.flag==1){ //更新前台相关标签值 $("#totalAMT").html(data.totalAmt); $thisTD_amount.find("span").html(lnTotal); }else{ alert("对不起,操作失败"); } }, error:function(XMLHttpRequest, textStatus, errorThrown){ alert("访问后台发生错误:"+XMLHttpRequest.status) } });
后台处理代码:
public void updateCartItem(){ String mData=getPara(0); System.out.println("从前台传过来的数据是:"+mData); }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(11)
如果contentType值为"application/json;charset=UTF-8"的话,后台如此取值
JFinal中能获取到request就能取到值
用这个试试:
引用来自“backtract”的评论
用这个试试:
换字符型,拼接在url后就可以找到参数了,
lcPostData="{id:1,qty:2}";
var url="gallery/updateCartItem/"+lcPostData;
输出:%7Bid:1,qty:2%7D
大括号转码了,为什么不能用json格式提交数据?
一楼已经说的很清楚了啊:
{"id":1,"qty":2}
在jfinal中:
String id = getPara("id");
String qty = getPara("qty");
就可以了。
换个其他的内容格式提交试试。
两位能具体说说吗?我还是没看明白,就我这例子,应如何改?thks.
就是跟普通的方法一样,用getPara相关方法就可以获取到,吧参数什么的填写到.ajax中的参数字段中,参数是json的形式,可以看看w3school的相关方法,再说直接用.post多好
一楼已经说的很清楚了啊:
{"id":1,"qty":2}
在jfinal中:
String id = getPara("id");
String qty = getPara("qty");
就可以了。
json格式的数据,需要根据key来获取对应的数据——getPara("id")。不仅jfinal如此,servlet也是如此
终于找到原因了,不能设置contentType: "application/json", 去掉这行代码后台就可以获得参数wf值了,希望后来者少走弯路。