ajax

<!DOCTYPE html>
<html>
	<head>
		<title> ajax </title>
		<script type="text/javascript">

			var xhr = new XMLHttpRequest();
			
			//属性:	readyState
			//HTTP 请求的状态.当一个 XMLHttpRequest 初次创建时,这个属性的值从 0 开始,直到接收到完整的 HTTP 响应,这个值增加到 4
			console.log("readyState:"+xhr.readyState+"	Uninitialized	初始化状态。XMLHttpRequest 对象已创建或已被 abort() 方法重置。");
			
			//事件句柄: onreadystatechange
			//每次 readyState 属性改变的时候调用的事件句柄函数。当 readyState 为 3 时,它也可能调用多次。
			xhr.onreadystatechange = function(){
				switch(xhr.readyState){
					case 1:
						console.log("readyState:1"+"  Open	open() 方法已调用,但是 send() 方法未调用。请求还没有被发送。");
						break;
					case 2:
						console.log("readyState:2"+"  Send  Send() 方法已调用,HTTP 请求已发送到 Web 服务器。未接收到响应。");
						break;
					case 3:
						console.log("readyState:3"+"  Receiving		所有响应头部都已经接收到。响应体开始接收但未完成。");
						//status 由服务器返回的 HTTP 状态代码,如 200 表示成功,而 404 表示 "Not Found" 错误。
						//当 readyState 小于 3 的时候读取这一属性会导致一个异常。
						console.log("status:"+xhr.status);
						//这个属性用名称而不是数字指定了请求的 HTTP 的状态代码。
						//也就是说,当状态为 200 的时候它是 "OK",当状态为 404 的时候它是 "Not Found"。
						//和 status 属性一样,当 readyState 小于 3 的时候读取这一属性会导致一个异常。
						console.log("statusText:"+xhr.statusText);
						console.log("responseText:"+xhr.responseText);
						console.log("getAllResponseHeaders():"+getAllResponseHeaders())
						break;
					case 4: 
						console.log("readyState:4"+"  Loaded	HTTP 响应已经完全接收。");
						console.log("status:"+xhr.status);
						console.log("statusText:"+xhr.statusText);
						console.log("responseText:"+xhr.responseText);
						break;
				}
			}
			xhr.open('GET','jsonp.html',true);
			xhr.send(null);

		</script>
	</head>
	<body>
	</body>
</html>

  

posted on 2013-11-09 22:19  架构师师  阅读(313)  评论(0编辑  收藏  举报

导航