代码之家  ›  专栏  ›  技术社区  ›  Bob Jones

response.redirect不适用于Ajax控件

  •  0
  • Bob Jones  · 技术社区  · 15 年前

    我有一个页面,上面有几个使用Ajax的用户控件。当我尝试从这个页面执行response.redirect时,Ajax会捕获调用,不允许重定向。

    如何从Ajax页面执行response.redirect?

    谢谢。。。

    2 回复  |  直到 14 年前
        1
  •  0
  •   tvanfosson    15 年前

    在用户控件中,您对Ajax操作有多大的控制权?如果您可以修改客户机端,最简单的事情就是返回一个JSON对象,您可以解析该对象并将要重定向到的URL作为数据发送。在客户机上获取数据后,只需将window.location.href设置为URL。

    使用jquery,它看起来像:

    $.ajax({
       url: '/some/url',
       dataType: 'json',
       type: 'post',
       data: $('form').serialize(),
       success: function(data) {
           if (data.Redirect) {
              window.location.href = data.Redirect;
           }
           else {
             ...handle other responses...
           }
       }
       ... more options...
    });
    
        2
  •  0
  •   Russ Bradberry    15 年前

    正如我在另一个问题中所说:

    将此添加到web.config

    <httpModules>
        <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </httpModules>