重定向不适用于JQuery Mobile

时间:2013-12-20 00:09:18

标签: asp.net jquery-mobile

我正在运行DNN7.1网站。我有一个常规网站。我添加了一个页面,作为移动用户的登录页面。我在移动页面上使用JQuery Mobile 1.3.2,包括这个移动登录页面。如果用户导航到该页面并输入用户名和密码,它将正常工作并使用查询字符串将其重定向到网址上发送的正确页面,例如:

http://localhost/Mobilelogin?url=http://localhost/somePage 

它正确地重定向到

http://localhost/somePage

现在我想添加一个功能,用户可以直接发送他的用户名和密码以及他想要导航的网址,登录页面应该使用提供的用户名和密码进行身份验证,一旦成功将其重定向到网址(使用asp) .net Response.Redirect方法),格式为

http://localhost/Mobilelogin?u=username&p=password&url=http://localhost/somePage 

问题是,如果用户没有登录但是如果他已经登录然后使用相同的URL(具有用户名和密码),那么它可以正常工作。我尝试使用以下代码禁用ajax,因为我读取重定向并且JQM不能正常工作。

$(document).on("mobileinit", function () {
$.extend($.mobile, {
linkBindingEnabled: false,
ajaxEnabled: false
});
}); 

但它仍然无效。任何人都可以让我知道我需要做什么来使这项工作。

我尝试调试使用c#编写的登录模块,当用户在未登录时输入url,它调用页面加载并点击断点但登录并输入url时断点永远不会击中。看起来浏览器甚至没有联系服务器。我是JQM的新手,我认为全局禁用ajax将始终命中服务器以获取信息。这不是它的工作原理吗?如何在我的情况下使重定向工作。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您需要注意,默认情况下,jQuery Mobile使用AJAX加载页面内容,而不是按照正常情况“重定向”。

您应该阅读常见问题解答,因为它们提供了有用的信息: -

http://view.jquerymobile.com/1.3.2/dist/demos/faq/

具体来说: -

  

..它只会注入响应的body元素的内容(或者   更具体地说,如果提供了data-role =“page”元素,   意味着将使用页面顶部的任何内容

http://view.jquerymobile.com/1.3.2/dist/demos/faq/scripts-and-styles-not-loading.html

这可以解释为什么你的脚本没有执行,好像它在<head>中没有被加载。