0

我有一个 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 调用本身。所以我不能从控制器重定向它。

4

2 回答 2

0

因此,您想根据用户的会话是否已过期来定义操作 URL?

为什么不将操作 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) { });
于 2012-04-05T15:19:37.983 回答
0

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

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

于 2012-04-05T15:20:46.223 回答