【问题标题】:Redirection not working with JQuery Mobile重定向不适用于 JQuery Mobile
【发布时间】:2013-12-20 00:09:17
【问题描述】:

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

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

它正确地重定向到

http://localhost/somePage

现在我想添加一个功能,用户可以直接发送他的用户名和密码以及他想要导航的 url,登录页面应该使用提供的用户名和密码进行身份验证,一旦成功将其重定向到 url(使用 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 将始终访问服务器以获取信息。这不是它的工作原理吗?在我的情况下,如何使重定向起作用。非常感谢任何帮助。

【问题讨论】:

  • 您有一个未加密连接的登录页面?!这已经够糟糕了,但是您希望人们在 URL 中传递用户名和密码?您不妨将您的网站交给黑客。在继续之前,请查看一些基本的安全信息。
  • 虽然这并不能真正解决问题,但 msm8bball 是正确的 - 您根本无法在 URL 中传递用户名和密码,并且您的登录页面应该由 SSL 保护,因为它正在处理安全信息。
  • 我知道在 url 中传递用户名和密码并不安全,但我们正在为演示测试一些东西,而测试服务器没有应用 SSL 证书。这不会进入生产。

标签: asp.net jquery-mobile


【解决方案1】:

您需要注意,默认情况下,jQuery Mobile 使用 AJAX 加载页面内容,并且不会像往常一样“重定向”。

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

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

具体来说:-

.. 它只会注入响应的正文元素的内容(或 更具体地说, data-role="page" 元素(如果提供), 意味着不会使用页面头部的任何内容

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

这可能解释了为什么您的脚本没有执行,就好像它在 <head> 中没有被加载一样。

【讨论】:

  • 感谢您提供的常见问题解答链接,它帮助我解决了我遇到的其他问题。重定向问题是由于我的代码中的错误,当用户已经获得授权时,它在进入 MobileLogin 页面之前进行了重定向。
  • 不客气。 jQuery Mobile 网站上有很多不错的第三方资源,都值得一看。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-07
  • 1970-01-01
  • 2013-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多