我的Cordova / PhoneGap应用程序的用户必须登录,因此我将所有表单的数据分组到Javascript数组中,然后我JSON.strigify()
它并通过Ajax请求将其发送到服务器。
PHP脚本已通过手动发送CGI命令进行测试,它确实非常有效。
另外,我使用alert()
来检查函数sendDataToServer()
是否被调用,它是。
问题是Ajax不输出success()
error()
。并且与我用于检查登录的其他工作脚本没有区别(明显地执行命令)。
注意:我使用GET进行测试,最后它将是POST。
以下是 WORKING 脚本:
$("#connectionFormSubmit").click(function () {
$.ajax({
type: "POST",
url: "http://" + host + "/my_app/check_login.php",
data: "login=" + $("#login-conn").val() + "&password=" + $("#password-conn").val(),
success: function (msg) {
navigator.notification.alert(msg, alertDismissed, 'Result', 'OK');
},
error: function (jqXHR, exception) {
navigator.notification.alert(getError(jqXHR, exception), alertDismissed, 'Error', 'OK');
}
});
});
以下是 NOT WORKING 脚本:
function sendDataToServer(dataGuest, dataChild1, dataChild2, dataChild3) {
$.ajax({
type: "GET",
url: "http://" + host + "/my_app/insert_new_user.php",
data: "guest=" + dataGuest + "&child1=" + dataChild1 + "&child2=" + dataChild2 + "&child3=" + dataChild3,
/* async: false, not changing anything */
success: function (msg) {
navigator.notification.alert(msg, alertDismissed, 'Result', 'OK');
},
error: function (jqXHR, exception) {
navigator.notification.alert(getError(jqXHR, exception), alertDismissed, 'Error', 'OK');
}
});
}
(在这两种情况下,服务器脚本都可以正常工作)。
这就是我调用函数的方式:
sendDataToServer( JSON.stringify(dataGuest), JSON.stringify(dataChild1), JSON.stringify(dataChild2), JSON.stringify(dataChild3) );
我在Google上找不到任何类似的问题。