【发布时间】:2009-07-31 22:51:02
【问题描述】:
我有一个包含多个使用 Ajax 的用户控件的页面。当我尝试从此页面执行 response.redirect 时,Ajax 会捕获调用并且不允许重定向。
如何从 Ajax 页面执行 response.redirect?
谢谢...
【问题讨论】:
我有一个包含多个使用 Ajax 的用户控件的页面。当我尝试从此页面执行 response.redirect 时,Ajax 会捕获调用并且不允许重定向。
如何从 Ajax 页面执行 response.redirect?
谢谢...
【问题讨论】:
您在用户控件中对 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...
});
【讨论】:
正如我在另一个问题中所说:
将此添加到您的 web.config
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
【讨论】: