JQuery移动。网站上只有一个https页面

时间:2012-08-31 11:08:13

标签: javascript jquery ajax jquery-mobile https

众所周知,JQuery mobile在服务器重定向方面存在问题。

在网站上只有一个安全页面的最佳方法是什么?

这是一个场景:

  1. 用户访问网站的根目录 - >
  2. 用户转到付款页面 - >
  3. < - 服务器将用户重定向到https付款页面#On这一步我们可以 使用 data-ajax = false
  4. 付款页面的用户转到任何其他页面 - > #We应该拥有所有 页面上的链接 data-ajax = false ?看起来很糟糕。什么是正确的 如何让用户从此页面进入不安全的页面?
  5. UPD 这个问题不仅仅涉及移动网站,而是关于所有网站,它们都是密集使用ajax的。

2 个答案:

答案 0 :(得分:3)

处理此问题的一种方法是检测进行跨域AJAX调用并尝试更改协议所固有的失败页面加载。 AJAX和页面转换无法使用此方法,但是,它可以防止您使用data-ajax=false属性乱丢您的网站。这适用于两个方向(即,往返于HTTPS)。

$(document).bind("pageloadfailed", function (event, data) {

    // Let the framework know we're going to handle things.
    event.preventDefault();

    // Attempt to change protocols
    window.location.href = data.absUrl.indexOf('https://') > -1 ?
        data.absUrl.replace('https://', 'http://') :
        data.absUrl.replace('http://', 'https://');

    // At some point, if the load fails, either in this
    // callback, or through some other async means, call
    // reject like this:
    data.deferred.reject(data.absUrl, data.options);

});

答案 1 :(得分:0)

您有一个选项是设置jQuery mobiles默认值。你可以设置jQuery来设置所有链接不是ajax调用。因此,您仍然拥有JQM的外观和感觉,具有桌面网站的功能。 可在以下位置找到对JQM设置默认值的引用:http://jquerymobile.com/demos/1.1.1/docs/api/globalconfig.html