转自:http://blog.csdn.net/wenle006/article/details/7022240
一、error:
error:function (XMLHttpRequest, textStatus, errorThrown)
{
}
(默认: 自动判断 (xml 或 html)) 请求失败时调用时间。参数有以下三个:XMLHttpRequest 对象、错误信息、(可选)捕获的错误对象、XMLResponse对象。如果发生了错误,错误信息(第二个参数)除了得到null之外,还可能是"timeout", "error", "notmodified" 和 "parsererror"。
- textStatus:
"timeout", "error", "notmodified" 和 "parsererror"。
二、error事件返回的第一个参数XMLHttpRequest有一些有用的信息:
- XMLHttpRequest.readyState:
状态码
0 - (未初始化)还没有调用send()方法
1 - (载入)已调用send()方法,正在发送请求
2 - (载入完成)send()方法执行完成,已经接收到全部响应内容
3 - (交互)正在解析响应内容
4 - (完成)响应内容解析完成,可以在客户端调用了
三、data:"{}", data为空也一定要传"{}";不然返回的是xml格式的。并提示parsererror.
四、parsererror的异常和Header 类型也有关系。及编码header('Content-type: text/html; charset=utf8');
eg:python cgi+js:
前端调用python 已经print result了,但是前端并没有收到,依然pendding,一直是Provisional headers are shown,当结束进程时,前端返回200,此时会把之前的result打印出来并附带了cgi的头,如下:导致textStatus为parsererror
{"msg": "excute plan done", "retcode": "success"}
Content-type: text/plain
可以使用:chrome://net-internals/#events查看问题