Php Ajax请求不正确发送$\u POST
我正在尝试使用php、jquery、mysql和phonegap开发一个android应用程序 Phonegap环境不允许我使用php,但我可以在我的服务器中找到它,并使用ajax从数据库请求数据 我可以做简单的查询,但当我使用取自Php Ajax请求不正确发送$\u POST,php,jquery,mysql,ajax,phonegap,Php,Jquery,Mysql,Ajax,Phonegap,我正在尝试使用php、jquery、mysql和phonegap开发一个android应用程序 Phonegap环境不允许我使用php,但我可以在我的服务器中找到它,并使用ajax从数据库请求数据 我可以做简单的查询,但当我使用取自$\u POST的变量时,它不起作用,确切地说,isset($\u POST['any\u var'])返回false,但如果我使用isset($\u POST)返回true,那么我认为我的数据字符串不正确 我是这方面的新手,没有任何线索对我有帮助 <scrip
$\u POST
的变量时,它不起作用,确切地说,isset($\u POST['any\u var'])返回false
,但如果我使用isset($\u POST)返回true
,那么我认为我的数据字符串不正确
我是这方面的新手,没有任何线索对我有帮助
<script>
$(document).ready(function()
{
$("#login").click(function(){
var nombre=$("#nombre").val();
var pass=$("#pass").val();
var dataString= "nombre="+nombre+"&pass="+pass+"&login=true";
if($.trim(nombre).length>0 & $.trim(pass).length>0){
$.ajax({
type: "POST",
url:"https://crm.inter-web.es/app/json.php",
data: dataString,
crossDomain: true,
cache: false,
beforeSend: function(){ $("#login").val('Conectando...');
},
success: function(data){
return data;
},
error: function(jqXHR, textStatus, errorThrown){ alert(errorThrown);}
});
var url="https://crm.inter-web.es/app/json.php";
$.getJSON(url, function(track){
console.log(track);
$(".list").append("<li>Nombre "+track['nombre']+"</li>");
$(".list").append("<li>Pass "+track['pass']+"</li>");
});
}return false;
});
});
</script>
$(文档).ready(函数()
{
$(“#登录”)。单击(函数(){
var nombre=$(“#nombre”).val();
var pass=$(“#pass”).val();
var dataString=“nombre=“+nombre+”&pass=“+pass+”&login=true”;
如果($.trim(nombre).length>0和$.trim(pass).length>0){
$.ajax({
类型:“POST”,
url:“https://crm.inter-web.es/app/json.php",
数据:dataString,
跨域:是的,
cache:false,
beforeSend:function(){$(“#login”).val('Conectando…');
},
成功:函数(数据){
返回数据;
},
错误:函数(jqXHR,textStatus,errorhorn){alert(errorhorn);}
});
变量url=”https://crm.inter-web.es/app/json.php";
$.getJSON(url、函数(轨迹){
控制台日志(跟踪);
$(“.list”).append(“Nombre”+曲目['Nombre']+” ”;
$(“.list”).append(“Pass”+音轨['Pass']+” ”;
});
}返回false;
});
});
PHP代码:
<?php
//server code
include "db.php";
if (isset($_POST['login'])) {
$q=mysqli_query($con,"select nombre, pass from usuarios where nombre='".$_POST['nombre']."'");
$datos=mysqli_fetch_all($q, MYSQLI_ASSOC);
$num=mysqli_num_rows($q);
$json=json_encode($datos);
echo $json;
}else{
$q=mysqli_query($con,"select * from clientes where id_cliente='62' ");
$datos=mysqli_fetch_array($q, MYSQLI_ASSOC);
$num=mysqli_num_rows($q);
// var_dump($datos);
// for ($i=0; $i < $num ; $i++) {
// echo $datos[$i][0]."<br>";
// }
$json=json_encode($datos);
// mkdir("./json/");
// $fp=fopen("json/json.json", "w+");
// fwrite($fp,$json);
echo $json;
}
?>
而不是尝试格式化“数据字符串”。。。我建议您使用一个对象:
dataObject = {
nombre: $("#nombre").val(),
pass: $("#pass").val(),
login: true,
}
在ajax中:
$.ajax({
type: "POST",
url:"https://crm.inter-web.es/app/json.php",
data: dataObject,
// ...
success: function(data){
// return data; // That line does nothing.
console.log(data);
},
最后,我用GET代替POST完成了这项工作,我的第一个代码是多余的,我向服务器发出了两个请求:
$.ajax({
type: "POST",
url:"https://crm.inter-web.es/app/json.php",
data: dataString,
crossDomain: true,
cache: false,
beforeSend: function(){ $("#login").val('Conectando...');
},
success: function(data){
return data;
},
error: function(jqXHR, textStatus, errorThrown){ alert(errorThrown);}
});
以及:
$.getJSON(url、函数(轨迹){
控制台日志(跟踪);
$(“.list”).append(“Nombre”+曲目['Nombre']+” ”;
$(“.list”).append(“Pass”+音轨['Pass']+” ”;
});
我用第二种方式(“”)修改了带有GET参数的url,效果很好。nombre=“+nombre+”&pass=“+pass+”login=true”
。你错过了一个&在那里,不是吗?是的,我错过了,完全是我的错。改变它同样的结果,也尝试用json代替字符串。我可能会尝试1)只制作一个对象而不是PHP页面上的字符串{“nombre”:nombre,“pass”:pass,“login”:true}
2)doprint\r($\u POST)代码>在顶部,这样您就可以看到正在发生的事情,最后3)在AjaxDOconsole.log(数据)中获得成功代码>返回之前。然后您可以在JS控制台中看到PHP返回的内容。我尝试了bouth方法,但$\u POST再次为空。好的,我编辑了。。。在success
回调中,返回数据代码>什么也不做。尝试将应该返回的json记录到console.log中。
$.getJSON(url, function(track){
console.log(track);
$(".list").append("<li>Nombre "+track['nombre']+"</li>");
$(".list").append("<li>Pass "+track['pass']+"</li>");
});