想象一下我运行这个:
$.ajax({
type: 'POST',
url: '/ajax/watch.php',
data: {'watch':'aukcia', 'id':aukciaID},
complete: function(responseText){
alert(responseText);
}
});
在/ajax/watch.php里面,假设我有这个:
echo 'this is what I want';
警报(responseText)返回:
[object Object]
而不是我需要的文本字符串。 有什么帮助吗?
答案 0 :(得分:14)
看起来你的jQuery以某种方式返回了XMLHttpRequest对象,而不是你的响应。
如果是这种情况,您应该询问其responseText
属性,如下所示:
$.ajax({
type: 'POST',
url: '/ajax/watch.php',
data: {'watch':'aukcia', 'id':aukciaID},
complete: function(r){
alert(r.responseText);
}
});
但是,如果这不起作用,您实际上可能正在接收JSON响应,并且您看到的[object Object]
可能是您的浏览器代表您的JSON响应。
您应该能够通过浏览对象属性来检查其内容。但是,如果您愿意,还可以通过在呼叫中加入dataType: 'text'
来告诉jQuery不要解析您的JSON响应:
$.ajax({
type: 'POST',
url: '/ajax/watch.php',
data: {'watch':'aukcia', 'id':aukciaID},
dataType: 'text',
complete: function(data){
alert(data);
}
});
有关详细信息,请参阅:http://api.jquery.com/jQuery.ajax/
答案 1 :(得分:1)
像这样在客户端ajax上使用
$.ajax({
type: "POST",
url: "insert-data.php",
data:
{student_name:student_name,student_roll_no:student_roll_no
,student_class:student_class},
dataType: "JSON",
success: function(data) {
$("#message").html(data);
$("p").addClass("alert alert-success");
},
error: function(err) {
alert(err);
}
});
在执行查询后,在服务器端可以使用它来提供成功,如果查询失败则当查询成功时为假
if($stmt->execute())
{
$res="Data Inserted Successfully:";
echo json_encode($res);
}
else {
$error="Not Inserted,Some Probelm occur.";
echo json_encode($error);
}
答案 2 :(得分:0)
我认为您在服务器回复中收到了此消息
{message:'hello world'}
如果是这种情况,请使用
JSON.parse(data.responseText).message
将json字符串转换为javascript对象并访问您的message属性。