前言:
如今你们对“ajax返回的是什么对象”大体比较关注,小伙伴们都需要剖析一些“ajax返回的是什么对象”的相关内容。那么小编同时在网上网罗了一些有关“ajax返回的是什么对象””的相关知识,希望各位老铁们能喜欢,各位老铁们一起来学习一下吧!XMLHttpRequest(oXMLHttpRequest) 对象属性
onreadystatechange 状态改变的事件触发器,只写;
XMLHttpRequest.onreadystatechange = funcMyHandler;
readyState 对象状态(integer),只读;
XMLHttpRequest.readyState;
0 = 未初始化 1 = 初始化 2 = 已发送 3 = 已接收部分数据 4 = 完成
0 (未初始化) 对象已建立, 但是尚未初始化---创建ajax对象(new XMLHttpRequest)
1 (初始化) 对象已初始化, 尚未调用send方法---初始化ajax对象(xmlHttp.open())
2 (发送数据) send方法已调用, 但是当前的状态及http头未知----发送请求(xmlHttp.send())
3 (数据传送中) 已接收部分数据, 因为响应及http头不全, 这时通过responseBody和responseText获取部分数据会出现错误,
4 (完成) 数据接收完毕, 此时可以通过通过responseBody和responseText获取完整的回应数据
responseText 服务器进程返回数据的文本版本,只读;(text/html)
strValue = XMLHttpRequest.responseText;(text/html)
strXML = XMLHttpRequest.responseXML;(text/xml)
status 服务器返回的状态码, 如:404 = "文件末找到" 、200 ="成功"
XMLHttpRequest.status;
常用的值有:
200 表示请求成功
202 表示被接收
400 表示错误的请求
404 表示资源未找到
500 表示内部服务器错误, 如php代码错误等
statusText 服务器返回的状态文本信息,如:ok、not found
strValue = XMLHttpRequest.statusText;
Ajax引擎对象中的方法
abort() 停止当前请求
XMLHttpRequest.abort();
getAllResponseHeaders() 作为字符串返回完整的headers
strValue = XMLHttpRequest.getAllResponseHeaders();
getResponseHeader() 作为字符串返回单个的header标签
strValue = XMLHttpRequest.getResponseHeader();
如:XMLHttpRequest.getResponseHeader("Server")
open("method","URL"[,asyncFlag[,"userName"[, "password"]]]) 设置未决的请求的目标 URL,方法,和其他参数
method:http方法, 例如:POST、GET、PUT及PROPFIND。大小写不敏感。
URL:请求的URL地址,可以为绝对地址也可以为相对地址。
asyncFlag[可选]:布尔型,指定此请求是否为异步方式,默认为true。如果为真, 当状态改变时会调用onreadystatechange属性指定的回调函数。
异步:同一个时间点允许执行多个进程。(true)
同步:同一个时间点只允许执行一个进程。(false)
userName[可选]:如果服务器需要验证,此处指定用户名,如果未指定,当服务器需要验证时,会弹出验证窗口。
password[可选]:验证信息中的密码部分,如果用户名为空,则此值将被忽略。
send(content) 发送请求
只有当ajax对象的send方法被调用时,才会发送请求
注意:
使用get将数据传给服务器,则服务器就使用$_GET
就直接通过url将数据传给服务器,发送请求使用send(null)语句
使用POST时一定要使用 xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
发送请求使用send(url)语句;
通常在数据不多的时候才有GET方式,而数据量稍大的时候采用POST方式
setRequestHeader("header", "value") 设置header并和请求一起发送
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
完整实例:
<!DOCTYPE html><html><head><title>XMLHttpRequest</title><script language="javascript">var xmlHttp;function createXMLHttpRequest(){ if(window.ActiveXObject) xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); else if(window.XMLHttpRequest) xmlHttp = new XMLHttpRequest();}function startRequest(){ createXMLHttpRequest(); var sUrl = "sync.php?" + new Date().getTime(); //地址不断的变化,解决IE缓存问题 xmlHttp.onreadystatechange = function(){ if(xmlHttp.readyState == 4 && xmlHttp.status == 200) alert("服务器返回: " + xmlHttp.responseText); } xmlHttp.open("GET",sUrl,true); xmlHttp.send(null);}</script></head><body><input type="button" value="测试异步通讯" onClick="startRequest()"></body></html>
服务器端代码(文件名:sync.php)
<?phpheader('Content-type: text/html;charset=utf-8');echo "异步测试成功,很高兴";?>
服务器端在返回数据时可不可以使用return代替echo?
答:不可以
原因如下:虽然return与echo都有返回的含义, 但是两者有很大的区别。return代表返回数据到服务器端, 而echo语句代表返回数据到客户端。
又由于Ajax属于客户端语言, 其接收的数据必须能返回到客户端, 否则是接收不到任何数据的。
标签: #ajax返回的是什么对象 #ajax里面都有哪些值 #javaajax返回值类型 #ajax参数配置文件 #ajax获取属性