3

ご存知のように、JQuerymobileにはサーバーからのリダイレクトに問題があります。

サイトにセキュリティで保護されたページを1つだけ持つための最良の方法は何ですか?

シナリオは次のとおりです。

  1. ユーザーがサイトのルートに移動します->
  2. ユーザーは支払いページに移動します->
  3. <-サーバーはユーザーをhttps支払いページにリダイレクトします#このステップでは、data-ajax=falseを使用できます
  4. 支払いページのユーザーは他のページに移動します-># data-ajax = falseのページにすべてのリンクがあるはずですか?ひどいですね。このページからセキュリティで保護されていないページにユーザーを移動させる適切な方法は何ですか?

UPDこの質問は、モバイルサイトだけでなく、ajaxを集中的に使用するすべてのサイトに関するものです。

4

2 に答える 2

3

これを処理する 1 つの方法は、クロスドメイン AJAX 呼び出しを行うことに固有のページ読み込みの失敗を検出し、プロトコルの変更を試みることです。data-ajax=falseこの方法では AJAX とページ遷移は機能しませんが、サイトに属性を散らかさなくて済みます。これは両方向 (つまり、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);

});
于 2012-09-07T13:18:07.843 に答える
0

選択肢の 1 つは、jQuery モバイルのデフォルトを設定することです。jQuery を設定して、すべてのリンクを ajax 呼び出しではないように設定できます。したがって、デスクトップ Web サイトの機能を備えた JQM のルック アンド フィールを維持できます。JQM 設定のデフォルトへの参照は、http://jquerymobile.com/demos/1.1.1/docs/api/globalconfig.html にあります

于 2012-09-10T13:58:08.140 に答える