【问题标题】:return what after a ajax call返回ajax调用后的内容
【发布时间】:2015-05-13 18:06:42
【问题描述】:

我使用spring-mvc 并且我有一个返回void 的ajax 调用,因为我只是更新了数据库中的一些数据。但是如果用户没有登录,我想将他重定向到登录页面,但我必须指定String 作为返回而不是void,所以我该如何处理?

@RequestMapping(value="/add_to_fav") 
public @ResponseBody
void add_to_fav( ... ) {
    ....
    if(session.getAttribute("contact") == null)
        return "redirect:/login?next="+URLEncoder.encode(
                request.getRequestURL().toString() + "" + (request.getQueryString() != null ? "?" + request.getQueryString() : "")
                    ,"utf-8");

    ....

}

【问题讨论】:

  • 返回真/假...如果更新则为真,如果未登录则为假
  • 但我想将用户重定向到登录页面
  • 在ajax成功后检查是否为假然后重定向
  • 不,我不会添加从客户端到服务器的额外往返
  • 您别无选择,只能在客户端执行此操作,即在 Javascript 中。如果您使用的是 jQuery,我可以为您提供一个干净的解决方案,您可以在您的应用程序中全局配置以捕获所有具有会话超时的 ajax 请求。

标签: java ajax spring-mvc servlets


【解决方案1】:

在这种情况下,您有一些可能性,如下所示: 一种 - 将返回值更改为布尔值,如果为 false,则将用户重定向到登录页面。

  • 将返回值更改为布尔值,如果为 false,则调用模式向用户询问凭据

  • 事先确定用户是否已登录,如果没有,请在服务器调用之前调用模式,这样您对服务器的调用就会减少。

  • 如果这些选项都不适合您,请提供有关应用程序的更多详细信息以帮助您考虑。

【讨论】:

    猜你喜欢
    • 2020-01-27
    • 2014-02-18
    • 1970-01-01
    • 2016-05-23
    • 2014-02-13
    • 2012-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多