如何从ajax / jquery获取响应文本?

时间:2011-03-20 05:13:56

标签: ajax jquery

想象一下我运行这个:

     $.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]

而不是我需要的文本字符串。 有什么帮助吗?

3 个答案:

答案 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属性。