我正在尝试使用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>
非常感谢任何帮助。
答案 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手机作为我的测试设备时,一切都很顺利,没有额外的配置。干杯!
最诚挚的问候, 易莹