【问题标题】:Phonegap + Jquery Mobile Android App Form SubmissionPhonegap + Jquery Mobile Android App 表单提交
【发布时间】:2012-06-23 08:07:37
【问题描述】:

我正在尝试使用 Phonegap 和 Jquery Mobile 在 Eclipse Android 模拟器中提交表单。我正在寻找提交表单并有一条消息显示表单是否已成功提交。如果我在 Internet 浏览器上提交表单,则 php 页面可以正常工作。但是,尝试使用 Android 模拟器时,表单提交永远不会到达 php 文件。

下面是我正在使用的 html 表单。我已经包含了 phonegap 和 jquery 脚本。

  <form id="myForm" >
                <div data-role="fieldcontain">
                    <fieldset data-role="controlgroup" data-mini="true">
                        <label for="textinput1">
                            Name
                        </label>
                        <input id="fullnameid" name="fullname" placeholder="" value="" type="text" />
                    </fieldset>
                </div>
                <div data-role="fieldcontain">
                    <fieldset data-role="controlgroup" data-mini="true">
                        <label for="textinput2">
                            E-Mail
                        </label>
                        <input id="emailid" name="email" placeholder="" value="" type="text" />
                    </fieldset>
                </div>
                <div data-role="fieldcontain">
                    <fieldset data-role="controlgroup">
                        <label for="textarea1">
                            Message
                        </label>
                        <textarea id="commentid" name="comment" placeholder="" data-mini="true"></textarea>
                    </fieldset>
                </div>
                 <h3 id="return"></h3>
                <button data-theme="b" id="submitid" data-icon="arrow-r" data-iconpos="left" name="submit" type="submit">Submit</button>

           </form>

我使用的 javascript 是 AJAX 帖子:

<script>
 function onSuccess(data, status)
    {
        data = $.trim(data);
        $("#return").text(data);
    }

    function onError(data, status)
    {
        // handle an error
        alert("Error Submitting Form");
    }       

    $(document).ready(function() {
        $("#submitid").click(function(){

            var formData = $("#myForm").serialize();

            $.ajax({
                type: "POST",
                url: "http://www.dowlingnetworks.com/app/contactscript.php",
                cache: false,
                data: formData,
                success: onSuccess,
                error: onError
            });

            return false;
        });
    });
</script>

任何帮助将不胜感激。

【问题讨论】:

  • 您是否将 www.dowlingnetworks.com 列入白名单?

标签: android ajax forms jquery-mobile cordova


【解决方案1】:

您不能像这样从 android 将数据发布到服务器。您正在通过来自网络服务器的 jquery 进行跨域请求。您必须发出 JSON 或 JSONP 请求才能到达服务器。请通过链接制作Request to web server using phonegap jquery mobile

【讨论】:

    【解决方案2】:

    进行跨域调用的简单方法就是在你的 php 页面的标题中放入这一行:

    header("Access-Control-Allow-Origin: *");
    

    【讨论】:

      【解决方案3】:

      我以前也有同样的问题。然而,当我使用实际的安卓手机作为我的测试设备时,一切都很好,没有额外的配置。干杯!

      最好的问候, 易莹

      【讨论】:

        【解决方案4】:

        您可以通过在 [project_name]/res/xml/config.xml 中进行设置来控制您的应用程序可以访问哪些外部资源:

        <access origin="http://[some-external-domain.com]" subdomains="true" />
        

        这里有一份文档:

        https://build.phonegap.com/docs/config-xml
        

        注意:一直滚动到底部以找到讨论设置的特定部分。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-29
          • 1970-01-01
          • 1970-01-01
          • 2013-02-21
          • 2011-12-22
          相关资源
          最近更新 更多