想象一下我运行这个:
$.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]
而不是我需要的文本字符串。有什么帮助吗?
看起来您的jQuery以某种方式返回了XMLHttpRequest对象,而不是您的响应。
如果是这种情况,则应请求其responseText属性,如下所示:
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响应:
dataType: 'text'
$.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/