ajax请求获取到数据,但是仍然不能触发success方法

时间:2021-10-26 19:52:49

这个问题消耗了我的很多时间。

原来是因为.php文件中的 echo echo json_encode($k);  后面少加了个exit;

 因为echo echo json_encode($k); 之后还是有其他内容的,所以ajax获取到除了json格式以外的数据。

这个时候会触发error方法:

error: function(XMLHttpRequest, textStatus, errorThrown){
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}

分别弹出: 200, 4, parsererror

parsererror 表示数据转化的过程出现错误, 原因是请求的是json数据,然而返回了除json之外的数据。

  
  XMLHttpRequest.status 值表示含义:
 · 200 - OK 一切正常,对GET和POST请求的应答文档跟在后面。 
 ·201 - Created 服务器已经创建了文档,Location头给出了它的URL。 
 · 202 - Accepted 已经接受请求,但处理尚未完成。 
 · 203 - Non-Authoritative Information 文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝,非权威性信息(HTTP 1.1新)。
 · 204 - No Content 没有新文档,浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的。 
 · 205 - Reset Content 没有新的内容,但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容(HTTP 1.1新)。 
 · 206 - Partial Content 客户发送了一个带有Range头的GET请求,服务器完成了它(HTTP 1.1新)。 

  
 XMLHttpRequest.readyState 值表示含义:
 0 为初始化——open函数还没调用。
1 正在加载——open函数已调用,但send函数没有调用。
2 已加载  ——send函数已调用。
3 正在交互——服务器正在发送响应。
4 完成    ——服务器完成发送响应。