jfinal对ajax请求的拦截器设置

发布于 2021-12-03 22:02:10 字数 590 浏览 697 评论 11

@JFinal 你好,想跟你请教个问题:

问一下,jfinal的拦截器处理。现在我的项目,所有的请求都是ajax请求。现在我加了一个登陆页面

登陆的时候,会在session中设值,如果不登陆,直接访问,那拦截器拦截到你的请求,发现session里面没值,就会让页面跳转到登陆页面

那么问题来了,各种各样的ajax请求,有的dataType=text,有的dataType=json。现在我render("/login.jsp"),发现跳转不过去。

我自己F12看了,我发现response是返回了login.jsp的源码的,只不过页面没有去解析这种html返回值

拦截的ajax,回调函数都只写了success和error。客户端本来打算接收到的是json,现在服务器返回一个jsp的源码,他还是按照原来success里面的代码来执行,就没跳过去。我觉得应该是这样

那现在,我需要达到拦截各种类型的ajax请求,根据拦截器情况,让他们跳转到指定页面,该怎么做呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(11

百思不得你姐 2021-12-05 11:48:36

lsioui 正解!

断爱 2021-12-05 11:48:34

回复
我现在进行redirect了,那这个ajax请求,最后还是会执行回调啊,要么是他的success,要么是他的error函数。我重定向之后,页面jsp源码返回了,但是不会解析,也就是不会跳转还是

柳絮泡泡 2021-12-05 11:48:05

回复
不管你怎么render,被你拦截的那个ajax,他的success和error应该还是会执行的吧。你现在render一推html代码过去,但是之前的那个ajax,返回值类型可能是text,他怎么会知道你传回来的是html代码,需要解析

把昨日还给我 2021-12-05 11:48:00

回复
如果是json请求,可以用renderJson

躲猫猫 2021-12-05 11:45:34

楼上的两位,好像说得文不对题啊。。。。

最偏执的依靠 2021-12-05 11:42:36

Map<String, Object> map = new HashMap<String, Object>();

        try {

            int[] ret = DbPro.use(module).batch(sql, JsonToObject2(param), 100);

            map.put("success", true);

            map.put("data", ret);

        } catch (Exception e) {

            map.put("success", false);

            map.put("data", e.getMessage());

        }

        renderJson(JsonKit.toJson(map));

辞别 2021-12-05 10:21:50

嗯,我应该要统一封装ajax情况。然后指定,如果返回的json.code=1000就表示要跳转到XXX页面。这样就可以解决这样的问题

情场扛把子 2021-12-05 10:16:54

还是需要在js里判断json.code吗?请问您现在有更好的解决办法了吗?

伪装你 2021-12-05 08:21:08

回复
还是需要在js里判断json.code吗?请问您现在有更好的解决办法了吗?

泪冰清 2021-12-04 10:53:53

回复
封装一个统一的ajax请求函数,然后在回调里面判断json.code

等风来 2021-12-04 00:22:36

     既然全部请求都是 ajax, 那么 jfinal 那端无论返回什么,都无法实现页面跳转,只有你 ajax 这头拿到数据以后,然后 js 实现页面的跳转。jfinal 后端返回的只是各种类型的数据而已,并不能直接控制你的页面进行跳转

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文