2012-08-31 49 views
3

正如我们所知,JQuery手机在服务器重定向方面存在问题。JQuery mobile。网站上只有一个https页面

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

下面是场景:

  1. 用户进入网站的根目录 - >
  2. 用户进入支付页面 - >
  3. < - 服务器重定向用户到https支付页面#On这一步,我们可以 使用数据阿贾克斯=假
  4. 用户在付款页面转到其他页面 - > #WE应该有数据的Ajax网页上的所有链接 = false?看起来很糟糕。什么是合适的 方式让用户从这个页面到不安全的页面?

UPD这个问题不仅是关于移动网站,它是关于所有网站,使用ajax集中。

回答

3

处理这种情况的一种方法是检测出进行跨域AJAX调用并尝试更改协议时固有的失败页面加载。 AJAX和页面转换不会使用这种方法,但是,它可以防止您必须使用data-ajax=false属性乱丢您的网站。这可以在两个方向上工作(即从HTTPS到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); 

}); 
+0

这不是完美的解决方案,因为它会导致两个请求:1st到https协议 - 发送表单数据但取消(无响应),第二--http - 产生响应但不发送数据。 FCK – Luciuz

相关问题