关于LoginSessionInterceptor的问题

QQ图片20180622160520.pngQQ图片20180622160525.pngQQ图片20180622160530.png

我只是ajaxform少写个#,LoginSessionInterceptor就直接把用户信息返回到页面,这是正常的流程吗??加上了#就正常的返回了errorMsg的信息

评论区

JFinal

2018-06-22 16:12

少写一个 # ,那么 ajaxForm 这个方法的调用等于不存在,因为根本没绑定到相关的表单

注意百度搜索一下 jquery 选择器,尤其是 jquery id 选择器的用法

JFinal

2018-06-22 16:14

这里再补充一下,虽然少写一个 # 还是可以提交表单,那是因为这个表单本身就具有可以提交的功能,写上了 # 以后,该表单的提交行为会被你的 ajaxForm 这个方法接管

字符 # 在此仅仅是 jquery id 选择器的要求,你还可以使用其它选择器,详情可以了解一下 jquery 的多种选择器,用得最多的是类选择器

HalcyonDays

2018-06-22 16:17

@JFinal 但是我只是用validator判断用户名是否为空,为空就返回msg,然后刚好我ajaxForm少写一个#,他就返回了LoginSessionInterceptor当前登录的用户所有信息

JFinal

2018-06-22 16:32

@HalcyonDays 返回信息都一样,只不过你写了 # 就是 ajax 请求,从直观上看不到返回信息而已,而少写一个 # 就是普通请求,造成页面跳转信息显示出来了

在 chrome 中按一下 F12 打开开发者工具,能清清楚楚看到请求返回的数据是完全一样的

HalcyonDays

2018-06-22 17:11

@JFinal ...我刚刚测试了一下,就用club的发布反馈做了测试,将myArticleForm去除#,在MyFeedbackValidator最前面添加了validateRequired("feedback.title", "msg", "用户名不能为空");,按照,正常流程,是会在空白页只显示{"msg":"用户名不能为空"},但是我这里测试,会出现多余的{"msg":"用户名不能为空","_likeNum":999}likeNum,debug测试会经过LikeInterceptor

HalcyonDays

2018-06-22 17:20

@JFinal club我测试了下,他会出现多余的likeNum,而我的项目是在此跳转到LoginSessionInterceptor,然后会获取到了用户信息,返回到空白页,显示当前的用户信息,及第三张图,具体原因是什么不清楚,也不知道是不是bug

JFinal

2018-06-22 17:34

@HalcyonDays 看控制台输出的 jfinal action report , 里头有一栏叫: Interceptor,删掉当前 action 不需要的拦截器就不会出现多余的数据了,这个绝对不是 bug

HalcyonDays

2018-06-22 17:37

@JFinal = =我这个Interceptor是配置在configInterceptor全局拦截器

JFinal

2018-06-22 17:39

@HalcyonDays 不需要的话,去掉即可

JFinal

2018-06-22 17:39

或者使用 @Clear(...) 用在 action 上,针对性的移除,看一下 jfinal 文档,里面有 @Clear 的详细用法

HalcyonDays

2018-06-22 17:46

@JFinal 好的,谢谢波总,我对照了一下,我发现问题了,谢谢波总

热门反馈

扫码入社