我有非常简单的jQueryMobile应用程序。我想提交一份表格并致电ajax。在我的台式电脑上,这很好用,看起来像这样:
当我按下“保存”按钮时,下面的文字会出现。界面的HTML代码位于脚本accountAdd.html中。在我的电脑它按预期工作,但我需要这个应用程序的移动设备。这是我的设备截图,当我尝试做第一个数字时显示的相同的事情。
application on my mobile device
所以这是脚本中调用ajax的部分。
accountAdd.html
<script>
$( document ).ready(function() {
$(document).on('submit', '#formDetails', function() {
var theName = $("#accountName").val();
if($('#accountName').val().length > 0) {
$.ajax({
url: 'accountAdd.php',
data: $('#formDetails').serialize(),
type: 'post',
dataType: 'json',
timeout: 5000,
success: function (result, status) {
$("#resultLog").html("accountName: " + result.accountName);
},
error: function (request,error) {
alert('Network error has occurred please try again! Error: ' + error);
}
});
} else {
alert('Please fill all necessary fields');
}
return false;
});
});
</script>
.
.
.
HTML code
这是我的另一个脚本,其中包含在后端执行的代码。
accountAdd.php
<?php
header('Access-Control-Allow-Origin: *');
$return['accountName'] = $_POST['accountName'];
$return['accountType'] = $_POST['accountType'];
$return['accountBalance'] = $_POST['accountBalance'];
$return['accountDate'] = $_POST['accountDate'];
echo json_encode($return);
?>
所以我的移动设备上的ajax调用没有按预期工作,正如你在第二个数字中看到的那样是给出 parseerror 。两个设备的代码完全相同。我正在使用phonegap转换脚本。我认为问题与JSON对象有关(我认为在phonegap中的ajax调用需要传递JSON对象,但我不确定)。我需要帮助,如何修改代码,以便可以在PC和我的移动设备上同时工作。
答案 0 :(得分:1)
好的,你有<access origin="*"/>
所以这不是CORS问题。
我想也许你的问题是你没有在你的php中将数据类型设置为json但是期望它在javascript方面。尝试在php文件中添加以下行:
header('Content-Type: application/json');
修改强>
我看到你的php的url使用本地路径(之前应该注意但不知道你是否故意删除了服务器地址),所以你似乎把.php文件放在了phonegap应用程序中。
这不是它的工作原理。您需要在本地执行操作并使用javascript进行操作,或者您希望与服务器进行通信并且
答案 1 :(得分:0)
确保您的config.xml文件与index.html文件位于同一文件夹中,然后使用(或您所在的任何域)