我曾多次使用ajax将数据发送到php页面并返回一些内容,但我不确定如何确定具体返回了什么。我理解这里大多数领域的工作,但我也有一些问题。
我当前的代码如下:
$.ajax({
url: "search.php",
type: "post",
dataType: "json",
data: {partNumber: q , newType:newType},
success: function(data) {
console.log(data);
}
});
有一件事我不完全理解,那就是success:
线路是如何工作的。当我说success: function(data)
时,我的理解是,我说的是"一旦成功(某件事?我不确定是什么),返回到此ajax函数的信息将被称为data
",然后在括号内,我选择console.log
,即data
。
如果我的假设是错误的,请纠正我。
最终,我的php页面将做大量的工作,并返回一个包含数据的数组
$myArray = array("bob","dan","carl","mike");
如何选择将返回到ajax的?php页面运行良好,但现在我的console.log(data)
行代码没有返回任何内容。
您不应该从ajax调用的php页面中return
任何内容,您应该echo
它(即将它写入响应)。
echo json_encode($myArray);
如果你所回应的不是JSon,那么去掉dataType: "json"
。success
函数表示请求成功,即从服务器接收到状态为200的响应。还有一种error
方法,当你没有得到成功的回复时,你可以使用它。
success: function(data) {
console.log(data);
},
error: function(data) {
console.log("Error: "+data);
}
1)你的"成功"基本上是说什么时候没有发生错误。
这是测试错误
$.ajax({
url: 'search.php',
success: function(){
alert('success');
},
error: function(){
alert('failure');
}
});
2) 对于您的"数据",您在php端回显的内容将返回到中定义的变量中
function(results) {
例如,如果您想要返回一个数组,您可能想要返回"echo"json
您的数组应该包括一个密钥和一个值
$myArray = array("key" => "value");
echo json_encode($myArray);
在jquery端解析返回的json对象。
function(data) {
var obj = jQuery.parseJSON(data);
alert(obj.key);
3) 传递JSON对象
var JSONObject= {"partNumber":q, "newType":newType};
var jsonData = JSON.parse( JSONObject );
var request = $.ajax({
url: "search.php",
type: "POST",
data: jsonData,
dataType: "json"
});