我一直在寻找解决我正在构建的phonegap应用程序的错误的解决方案。
HTML
<form method="post" id="app-send" name="app-send">
<input id="a" name="a" type="text">
<input id="b" name="b" type="text">
<input id="c" name="c" type="text">
<input id="timestamp" name="timestamp" type="text">
<input id="submit" name="submit" type="submit">
</form>
JS
<script type="text/javascript">
$(document).ready(function () {
$('#app-send').submit(function (e) {
var postData = $(this).serialize();
$.ajax({
type: 'POST',
url: 'http://example.com',
dataType: 'json',
data: postData,
success: function (data) {
alert(data);
},
error: function () {
alert('error!');
}
});
return false;
});
});
</script>
我的问题:
每次我在控制台的phonegap开发者应用程序上测试我都会回来
"Proxy error for url: http://example.com undefined"
"HPE_INVALID_CONTACT http://example.com"
更新
我刚试过这个:
<form action="http://www.example.com" method="post" id="app-send" name="app-send">
<input id="a" name="a" type="text">
<input id="b" name="b" type="text">
<input id="c" name="c" type="text">
<input id="timestamp" name="timestamp" type="text">
<input id="submit" name="submit" type="submit">
</form>
这很有效。那么我如何使用AJax提交数据并阻止页面更改?
答案 0 :(得分:0)
我相信你正在使用jquery mobile的phonegap禁令
您应该将data-ajax="false"
添加到表单元素以停止jquery移动默认行为。
答案 1 :(得分:0)
请尝试添加e.preventDefault()以停止默认行为
$(document).ready(function () {
$('#app-send').submit(function (e) {
e.preventDefault();
//rest of your code
});
});
答案 2 :(得分:0)
您似乎需要将服务器IP列入白名单。请查看PhoneGap文档。
https://cordova.apache.org/docs/en/latest/guide/appdev/whitelist/
域名白名单指南。