【问题标题】:Redirect unauthenticated user to different page via ajax/jQuery $.post通过 ajax/jQuery $.post 将未经身份验证的用户重定向到不同的页面
【发布时间】:2012-04-05 15:13:15
【问题描述】:

我有一个 jQuery post call,如下所示:

$.post('/Controller/_PartialAction', { 'param1': data }, function(result) { });

没关系,一切正常,除非用户的身份验证 cookie 过期。

发生的情况是,那里已经有东西可以将/Controller/_PartialAction 重定向到登录页面,但是在这种情况下,部分操作是部分视图,而不是我想重定向完整视图。

所以它已经将它重定向到登录页面,但我想重定向一个不同的页面,比如我想重定向到/Controller/Index。有没有办法在 ajax/jQuery 调用中指定错误路径或重定向路径?

IE,类似这样的东西(这不存在,但就像我正在尝试做的那样)

$.post({success}, {redirect}, {error}, {data}, {function})

所以基本上,我怎样才能使用不同的 url 进行 jQuery/ajax 发布调用,以便我可以重定向到那个错误?

编辑

被重定向的是 ajax 调用本身。所以我不能从控制器重定向它。

【问题讨论】:

    标签: jquery asp.net ajax asp.net-mvc-3 partial-views


    【解决方案1】:

    我不完全确定你在追求什么,但是(基于http://api.jquery.com/jQuery.post/)你可以使用底层的 $.ajax (http://api.jquery.com/jQuery.ajax/) 并设置一个error函数?

    或者您能否在成功回调中测试 cookie 是否过期,然后根据该测试的结果进行重定向。

    【讨论】:

    • 我最终想出了这样的东西。
    【解决方案2】:

    所以您想根据用户的会话是否过期来定义操作 URL?

    为什么不将action URL定义为变量,然后在post调用中使用:

    // Use an asp.net function to work out whether session has expired
    if( ... ) {
       // Session expired
       var url = 'Controller/Index';
    } else {
       // Session alive
       var url = 'Controller/_PartialAction';
    }
    
    $.post(url, { 'param1': data }, function(result) { });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-29
      • 2020-07-19
      • 1970-01-01
      • 2021-04-01
      • 2014-02-03
      • 2020-02-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多