一尘不染

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

ajax

想象一下我运行这个:

     $.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';

并且alert(responseText)返回:

[object Object]

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


阅读 232

收藏
2020-07-26

共1个答案

一尘不染

看起来您的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/

2020-07-26