【问题标题】:Phonegap app works on emulator not on devicePhonegap 应用程序适用于模拟器而不是设备
【发布时间】:2014-09-23 05:36:34
【问题描述】:

m testing simple phonegap app for adding comment with remote server. ive 在telerik icenium 模拟器和浏览器中进行了测试,它可以工作。但是,当我尝试在 Visual Studio 模拟器中进行测试并单击按钮时,它会显示“CordovaBrowser_NavigationFailed :: www/index.html?email=fgg@vv.com&comment=Gjjj”。我也在设备上测试过,但没有任何反应。

这里是代码。 index.html - 主页

<!DOCTYPE html>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;">

    <title>jQuery form post</title>

    <script src="cordova.js"></script>
    <script src="js/index.js"></script>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="js/post.js"></script>
    <script src="js/jquery.mobile-1.4.3.js"></script>
    <script>
        function onBodyLoad() {
            document.addEventListener("deviceready", onDeviceReady, false);
        }
    </script>

    <style>
        label, b {
            display: block;
        }
    </style>
</head>
<body onload="onBodyLoad()">
    //<a href="http://bgg.comxa.com/new.php">content</a>
    <div id="landmark-1" data-landmark-id="1">
        <form>
            <label for="email">
                <b>Email</b>
                <input type="email" id="email" name="email">
            </label>

            <label for="comment">
                <b>Comment</b>
                <textarea id="comment" name="comment" cols="30" rows="10"></textarea>
            </label>

            <input type="submit" value="Save">
        </form>
    </div>
</body>
</html>

post.js

$(document).bind('deviceready', function () {
    $.support.cors = true;
    $.mobile.allowCrossDomainPages = true;
    $.mobile.pushStateEnabled = false;
    $(function () {
        $('form').submit(function () {
            var landmarkID = $(this).parent().attr('data-landmark-id');
            var postData = $(this).serialize();

            $.ajax({
                type: 'POST',
                data: postData + '&lid=' + landmarkID,
                //change the url for your project
                url: "http://bgg.comxa.com/new.php",
                crossDomain: true,
                success: function (data) {
                    console.log(data);
                    alert('Your comment was successfully added');
                },
                error: function () {
                    console.log(data);
                    alert('There was an error adding your comment');
                }
            });

            return false;
        });
    });
 }); 

【问题讨论】:

    标签: ajax cordova emulation simulator


    【解决方案1】:

    据我了解,此错误消息并未说明您的 index.html 文件有任何问题,它似乎根本无法访问它。

    看看这个帖子:Navigation in phonegap application fails when I use GET variables

    您尝试访问 index.html 文件的方式可能有些问题。也许您会直接访问“index.html”而不是“www/index.html”,正如帖子答案中所述。

    希望这会有所帮助!

    【讨论】:

    • 谢谢,但我相信这不是问题,因为应用程序在 Telerik app builder 的一个模拟器中运行良好。
    • 嗯,好的,您是否检查过某些东西是否在使用 cordova 的 Visual Studio 上成功运行?如果不是,我会尝试将这个应用程序放在一边,然后先让它运行 :-) 试试这个 url f.ex.:stuarthallows.wordpress.com/2013/11/12/…
    【解决方案2】:

    经过大量阅读,我认为问题出在 webkit prowsers 上。我读过基于 webkit 的浏览器中的 ajax 请求存在问题。我将在真实的手机设备上尝试代码并查看...

    【讨论】:

      猜你喜欢
      • 2012-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-23
      相关资源
      最近更新 更多