Php Ajax PhoneGap始终出错
我必须制作一个应用程序,我已经决定使用它,但是我的Ajax总是说“错误”,我不知道为什么,因为insert工作得很好Php Ajax PhoneGap始终出错,php,jquery,ajax,cordova,Php,Jquery,Ajax,Cordova,我必须制作一个应用程序,我已经决定使用它,但是我的Ajax总是说“错误”,我不知道为什么,因为insert工作得很好 $("#test").click(function() { var name = $("#name").val(); var password = $("#password").val(); alert(name+' '+password); $.ajax({ type: "POST", url: "http://1
$("#test").click(function() {
var name = $("#name").val();
var password = $("#password").val();
alert(name+' '+password);
$.ajax({
type: "POST",
url: "http://191.165.1.16/PULZ/ajax_action.php",
// contentType: "application/json; charset=utf-8",
dataType: "json",
data : {
actionname : 'insert',
name:name,
password:password
},
success: function(data) {
alert("work");
},
error: function(data) {
alert("There was an error loading the feed");
}
});
});
还有我的PHP代码
if (isset($_POST["actionname"]) && !empty($_POST['actionname'])){
$actionname = $_POST['actionname'];
if($actionname == 'insert'){
$connect = new PDOsql();
$name = $_POST['name'];
$password = md5($_POST['password']);
$sql="INSERT INTO user(name,password) VALUES(?,?)";
$opt = array($name, $password);
$connect->query($sql,$opt);
$connect = null;
die(
json_encode(
array(
'state'=>'success'
)
)
);
}
}
不能将“empty()”与非变量元素一起使用,您将始终收到一个内部服务器错误“500”
注意:在PHP5.5之前,empty()只支持变量;别的
将导致分析错误。换言之,以下情况不会发生
工作:空(修剪($name))。相反,请使用trim($name)==false
试试这个
JAVASCRIPT
$("#test").click(function() {
var name = $("#name").val();
var password = $("#password").val();
alert(name + ' ' + password);
$.ajax({
type: "POST",
url: "http://191.165.1.16/PULZ/ajax_action.php",
// contentType: "application/json; charset=utf-8",
dataType: "json",
data: {
actionname: 'insert',
name: name,
password: password
},
headers: {
'Content-Type': 'application/json'
}
success: function(data) {
alert("work");
},
error: function(data) {
alert("There was an error loading the feed");
}
});
});
PHP
尝试删除“类型:”、“url:”、“数据类型:”,等等,只需保留值就可以从php返回json字符串,以检查是否存在问题。。。如果它工作正常,那么您知道在哪里搜索……您实际上有一个类
PDOsql
?该类的query()
方法是否同时准备和执行查询?并检查控制台中给出的响应。直接在地址栏上检查php url,给出硬编码的post值,然后查看输出结果。如果您在响应中收到任何错误或警告,您的ajax将失败,因为它正在接受json,老实说,这只是一个很好的猜测。分别检查服务器/客户端。试着从curl命令或Postman调用服务器脚本,看看它返回什么,它是什么格式,等等。然后,当您确定它可以工作时,让客户端正确地调用它。$\u POST是一个数组,所以在OP代码中它被正确地使用,不管OP运行的是哪个PHP版本。
if (isset($_POST["actionname"]) && isset($_POST['name']) && isset($_POST['password'])){
$actionname = $_POST['actionname'];
$name = $_POST['name'];
$password = $_POST['password'];
if($actionname == 'insert'){
$connect = new PDOsql();
$name = $_POST['name'];
$password = md5($_POST['password']);
$sql="INSERT INTO user(name,password) VALUES($name,$password)";
$opt = array($name, $password);
$connect->query($sql,$opt);
$connect = null;
die(
json_encode(
array(
'state'=>'success'
)
)
);
}
}