0

コードは次のとおりです。

<!DOCTYPE html> 
<html> 
    <head> 
    <title>User2</title> 
        <meta name="viewport" content="width=device-width, initial-scale=1"> 
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
        <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
        <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>        
        <script>

            $(document).ready(function() {                
                $.support.cors = true;
                //Uses Tasty Pie REST APIs
        $("#user2-adduser2").click(function() {data = JSON.stringify({"username":$("#user2-username").val() === ""? null:$("#user2-username").val(), "product":$("#user2-product").val() === "" || $("#user2-product").val() === "Option(s)"? null:$("#user2-product").val()})
               $.ajax({
               url: 'http://xxxxxxdomainxxxxx/api/v1/user2/?format=json',
        type: 'POST',
                           async: false,
                           contentType: 'application/json',
                           data: data,
                           dataType: 'json',
                           processData: false,
                           success: function(data){
                           alert("Done!")
                           //Goto Next Page

                      },

                      error: function(jqXHR, textStatus, errorThrown){
                          alert("Some Error!")
                          }
                     })
                });

            ////For Dynamically loading dropdown options
            $.ajax({
                type: 'GET',
                url: 'http://xxxxxxdomainxxxxx/api/v1/productapp/?format=json',            
                accepts: 'application/json',
                success: function(data){
                    var options = '<option>Option(s)</option>'
                    for(var i = 0; i < data.objects.length; ++i) {
                        var str =  '<option value="/api/v1/productapp/' + data.objects[i].id + '/">' + data.objects[i].productname + '</option>'
                        options=options+str
                    }
                    $('#user2-product').html(options).selectmenu("refresh");
                },
                dataType: "json"
                });
            });// end of document.ready function

        </script>
    </head>
    <body> 

    <div id="user2">
        <h1>User2</h1>
        <div id="user2-username-div">
            username:
            <input  type="text" id="user2-username">
        </div>
        <div id="user2-product-div">
            Product:
            <select  id="user2-product" data-native-menu="false"></select>
        </div>
        <a id="user2-adduser2" href="#" data-role="button">Add User2</a>      
    </div>

    </body>
</html>

この問題は、Android ブラウザーだけに存在します。ページのすべての静的コンテンツが読み込まれています。ただし、動的コンテンツ、つまりこの場合、サーバーからのドロップダウンのオプションはロードされません。ブラウザを 1 回更新するだけで、すべて正常に動作します。

今日はほとんどすべてを試しましたが、うまくいきませんでした。アドバイス/ヘルプは大歓迎です。

4

1 に答える 1

0

わかった!最後に、問題を修正しました。

ajax http GETデフォルトでキャッシュされていたため、リクエストは機能していませんでした。したがって、モバイルブラウザからサーバーにリクエストは送信されませんでした。リクエストを送信するとcache=false、すべて機能しています。$.ajaxふぅ!

実際、私には2つの問題がありました。(1)複数ページのテンプレートの他のページへのリンクがアクティブ化されておらず、(2)Ajaxコンテンツがロードされていませんでした。

を使用すると、問題(1)が解決しましたdata-ajax="false"。問題(2)説明したように、リクエストを追加cache=falseしたとき。$.ajaxいつか誰かに役立つことを願っています。ありがとう

于 2013-02-18T08:19:36.157 に答える