0

我正在使用 ASP.NET mvc 4 开发移动 Web 应用程序。我遇到了 response.redirect 问题,从我的控制器重定向到其他网站(例如:http ://www.google.com ),它显示“错误加载页面" 没有重定向的消息。

我已尝试使用以下代码在 Home 控制器上的“关于”操作下重定向:

return Redirect("http://www.google.com"); 

return RedirectResult("http://www.google.com");

response.Redirect("http://www.google.com");

以上所有都产生了相同的错误。

注意:视图页面中的超链接工作正常

谢谢

4

2 回答 2

2

When you are setting up your link to the controller...you need to make sure the data-ajax attribute is set to false.

<a href="/MyRedirectingController" data-ajax="false">Redirect</a>

My understanding is that jQuery mobile wraps all anchor request in ajax, unless otherwise specified, and your response.redirect is just being served to the jQuery .done function which can't handle it properly.

http://jquerymobile.com/demos/1.2.0/docs/pages/page-navmodel.html

Important: rel="external" and $.mobile.ajaxEnabled=false

Slightly different implementations of the replaceState API in various browsers can cause odd behavior in specific scenarios. For example, some browser implementations (including desktop browsers) implement the popstate event differently when linking externally and moving back to a page onto which state has already been pushed/replaced. When building a jQuery Mobile application where the Ajax navigation is being explicitly disabled, either through the frequent use of rel="external" on links or by disabling Ajax navigation completely via the $.mobile.ajaxEnabled=false, we recommend disabling the pushState feature to fall back to the hash based navigation for more consistent behavior.

于 2013-02-01T19:38:57.427 回答
0

我怀疑您的问题是您正在重定向到本地站点之外。

请参阅文档的这一部分:http: //jquerymobile.com/test/docs/pages/page-navmodel.html

由 jQuery Mobile 创建的哈希值被规范化为相对于加载的第一个“真实”页面的 URL 的完整路径。

然后稍后它在此处确认“本地”要求:

单击链接时,jQuery Mobile 将确保该链接引用的是本地 URL

我认为解决方案是不将用户重定向到其他域。

更新

上述解决方案突出了问题的错误部分,但解决方案可能仍然相同。您应该使用 javascript 进行重定向,例如:

window.location = 'http://www.google.com/';

我相信如果您的 JQM 解决方案尝试进行 ajax 调用然后重定向,您会遇到问题。一个问题,专门针对 google.com,可能是您是否登录了 google。然后它将您重定向到https例如。这可能会干扰 JQM / window.location.hash

于 2013-02-01T15:18:37.080 回答