【问题标题】:JQuery mobile. Only one https page on sitejQuery 手机。网站上只有一个 https 页面
【发布时间】:2012-08-26 04:44:42
【问题描述】:

我们知道,JQuery mobile 在从服务器重定向时存在问题。

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

这里是场景:

  1. 用户转到站点的根目录 ->
  2. 用户进入支付页面->
  3. data-ajax=false
  4. 支付页面的用户转到任何其他页面 -> #我们应该拥有所有 data-ajax=false 的页面上的链接?看起来很可怕。什么是合适的 如何让用户从这个页面转到不安全的页面?

UPD 这个问题不仅与移动网站有关,还与所有大量使用 ajax 的网站有关。

【问题讨论】:

    标签: javascript jquery ajax jquery-mobile https


    【解决方案1】:

    处理此问题的一种方法是检测进行跨域 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);
    
    });
    

    【讨论】:

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

    您可以选择设置 jQuery mobiles 默认值。您可以设置 jQuery 将所有链接设置为非 ajax 调用。因此,您仍然拥有 JQM 的外观和桌面网站的功能。 可以在以下位置找到对 JQM 设置默认值的引用:http://jquerymobile.com/demos/1.1.1/docs/api/globalconfig.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 2015-04-07
      • 2011-10-19
      • 2018-05-19
      • 1970-01-01
      • 2021-10-16
      • 2013-10-20
      相关资源
      最近更新 更多