【问题标题】:INTEL XDK Ajax response is not workingINTEL XDK Ajax 响应不起作用
【发布时间】:2015-06-06 08:00:23
【问题描述】:

我刚开始在INTEL XDK工作将近一年。我已经创建了20-21个android应用程序。现在我大约3个月前下载了一个Intel xdk新版本。现在我已经下载了最新版本的intel xdk。

我创建了一个基于 ajax 调用的 apk,该 apk 在模拟器中运行良好,通过设备进行测试和调试,但是虽然我创建了一个 apk,但它在我的设备中不工作。

为此,我尝试了很多解决方案,在网络上给出的建议,添加了 xhr.js 等。但它无法正常工作。

但是当我用旧的 XDK 再次创建时,它可能是 1621 版或更早版本,它工作正常。

所以对于最新版本的 XDK,我遇到了 ajax 问题,但在旧版本中没有。最新版本的 XDK 应该是什么问题? 我目前的版本是1912

这是我的代码结构

index.html

<!DOCTYPE html>
<html>
    <head>
        <link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap.min.css">
        <meta charset="UTF-8">
        <title>Blank App Designer Cordova Web App Project Template</title>
        <meta http-equiv="Content-type" content="text/html; charset=utf-8">
        <style>
                @-ms-viewport { width: 100vw ; min-zoom: 100% ; zoom: 100% ; }          @viewport { width: 100vw ; min-zoom: 100% zoom: 100% ; }
                @-ms-viewport { user-zoom: fixed ; min-zoom: 100% ; }                   @viewport { user-zoom: fixed ; min-zoom: 100% ; }
                /*@-ms-viewport { user-zoom: zoom ; min-zoom: 100% ; max-zoom: 200% ; }   @viewport { user-zoom: zoom ; min-zoom: 100% ; max-zoom: 200% ; }*/
        </style>

        <link rel="stylesheet" href="css/app.css">
        <link rel="stylesheet" type="text/css" href="css/index_main.less.css" class="main-less">
        <script src="jquery/jquery.js"></script>
        <script src="cordova.js" id="xdkJScordova_"></script>
        <script src="js/app.js"></script>
        <!-- for your event code, see README and file comments for details -->
        <script src="js/init-app.js"></script>
        <!-- for your init code, see README and file comments for details -->
        <script src="xdk/init-dev.js"></script>
        <script src='xhr.js'></script>
        <!-- normalizes device and document ready events, see file for details -->
    </head>

    <body>
        <div class="upage vertical-col" id="mainpage">
            <div class="grid grid-pad urow uib_row_1 row-height-1" data-uib="layout/row" data-ver="0">
                <div class="col uib_col_1 col-0_12-12" data-uib="layout/col" data-ver="0">
                    <div class="widget-container content-area vertical-col">
                        <span class="uib_shim"></span>
                    </div>
                </div>
                <span class="uib_shim"></span>
            </div>

            <div class="grid grid-pad urow uib_row_3 row-height-3" data-uib="layout/row" data-ver="0">
                <div class="col uib_col_3 col-0_12-12" data-uib="layout/col" data-ver="0">
                    <div class="widget-container content-area vertical-col">

                        <div class="table-thing widget uib_w_1 d-margins" data-uib="twitter%20bootstrap/input" data-ver="1">
                            <label class="narrow-control label-top-left">User Name</label>
                            <input class="wide-control form-control default" type="text" placeholder="User Name">
                        </div><span class="uib_shim"></span>
                        <div class="table-thing widget uib_w_1 d-margins" data-uib="twitter%20bootstrap/input" data-ver="1">
                            <label class="narrow-control label-top-left">Password</label>
                            <input class="wide-control form-control default" type="text" placeholder="Password">
                        </div>
                        <button class="btn widget uib_w_2 d-margins btn-default" data-uib="twitter%20bootstrap/button" data-ver="1" id="login"><i class="glyphicon glyphicon-ok button-icon-left" data-position="left"></i>Login</button><span class="uib_shim"></span>
                    </div>
                </div>
                <span class="uib_shim"></span>
            </div>
        </div>
        <script>
        $("#login").click(function(){
         $.ajax({
        type:'GET',
        url:'http://time.jsontest.com/',
        error: function(response, d, a){
            alert(response + d + a) ;  
        },
        success: function (response){
            alert(JSON.stringify(response));        
        }
    });
        });
        </script>
    </body>

</html>

【问题讨论】:

    标签: javascript html intel cordova-plugins intel-xdk


    【解决方案1】:

    在 Android > 4.4 上使用最新的 Intel XDK 构建的 apk 存在一个已知的 ajax 问题,这是由于 Cordova CLI 4.1.2 的版本造成的。

    在 Intel XDK -> project settings -> build settings for Android 中,将 Cordova CLI 版本更改为 3.5,ajax 应该可以再次工作。我们正在修复使用最新 CLI 时的问题

    【讨论】:

    • 谢谢,我现在已经安装了旧版本,很快我会重新安装新版本试试。
    【解决方案2】:

    @Hardik,Cordova 4.1.2 安全模型有一些变化,因此您必须在英特尔 XDK 的构建设置中使用正确的设置。请阅读this article,了解在构建应用之前应该如何设置构建设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-25
      • 1970-01-01
      • 1970-01-01
      • 2014-12-17
      相关资源
      最近更新 更多