Phonegap + Jquery移动Android应用程序表单提交

时间:2012-06-21 05:50:04

标签: android ajax forms jquery-mobile cordova

我正在尝试使用Phonegap和Jquery Mobile在Eclipse Android模拟器中提交表单。我希望提交表单并显示表单已成功提交的消息。如果我在互联网浏览器上提交表单,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>

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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

其中一个文档在这里:

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

注意:一直滚动到底部,找到有关设置的特定部分。

答案 3 :(得分:-1)

我之前有同样的问题。但是,当我使用实际的Android手机作为我的测试设备时,一切都很顺利,没有额外的配置。干杯!

最诚挚的问候, 易莹