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

Ric*_*uez 6 ajax jquery

想象一下,我运行这个:

     $.ajax({
        type: 'POST',
        url: '/ajax/watch.php',
        data: {'watch':'aukcia', 'id':aukciaID},
        complete: function(responseText){
           alert(responseText);
        }
     });
Run Code Online (Sandbox Code Playgroud)

在/ajax/watch.php里面,假设我有这个:

echo 'this is what I want';
Run Code Online (Sandbox Code Playgroud)

并且警报(responseText)返回:

[object Object]
Run Code Online (Sandbox Code Playgroud)

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

Fáb*_*sta 16

看起来你的jQuery以某种方式返回XMLHttpRequest对象,而不是你的响应.

如果是这种情况,您应该询问其responseText财产,如下所示:

 $.ajax({
    type: 'POST',
    url: '/ajax/watch.php',
    data: {'watch':'aukcia', 'id':aukciaID},
    complete: function(r){
       alert(r.responseText);
    }
 });
Run Code Online (Sandbox Code Playgroud)

但是,如果这不起作用,您实际上可能正在接收JSON响应,并且[object Object]您看到的可能是您的浏览器对JSON响应的表示.

您应该能够通过浏览对象属性来检查其内容.但是,如果你愿意,你也可以告诉jQuery不要解析你的JSON响应,包括dataType: 'text'你的电话:

 $.ajax({
    type: 'POST',
    url: '/ajax/watch.php',
    data: {'watch':'aukcia', 'id':aukciaID},
    dataType: 'text',
    complete: function(data){
       alert(data);
    }
 });
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅:http://api.jquery.com/jQuery.ajax/