这是一篇有关基础的面试相关问题
首先ajax的流程
典型的xhr建立ajax的过程。(涵盖了ajax的大部分内容)
1、new一个xhr对象。
2、调用xhr对象的open方法。
3、send一些数据。
4、对服务器的响应过程进行监听,来知道服务器是否正确得做出了响应,接着就可以做一些事情。比如获取服务器响应的内容,在页面上进行呈现。AJAX既然是通过浏览器的内置对象XMLHttpRequest来处理异步请求的那我们先来了解下他又哪些方法和属性:
注:写在这里的为必选参数或者经常用到的可选参数
方法:
一、open();
解释:发送请求的页面在不刷新的情况能将参数传给一个服务器进行处理, 这个方法就是将这些个参数传送过去
参数:
1, method:用于指定请求的类型 “GET"或者"POST”
2, url:用于请求的地址, 可相对可绝对
3, asyncFlag:指定请求方式为同步还是异步, true为异步, false为同步
二、send();
解释:这个东西就是将一些参数以键值对的方式传送给服务器, 异步的话将立即返回服务器的响应, 做到不刷新页面进行数据处理就是用来发送参数的, GET方法下可以在url的后面写上参数的值, POST方法下只能在send()方法里面写上参数的键值对
三、setRequestHeader(“header”,“value”)
解释:用于为请求的Http头设置值
四, getResponseHeader(“headerLabel”);
解释: 返回设置的Http头信息
五, abort();
个人理解: 使用了这个请求之后会直接停止getResult的回调函数, 让readyState属性的返回值直接为0
六, getAllResponseHeaders();
解释:以字符串的形式返回完整的字符串信息
属性:
- onreadystatechange
解释: 用于指定状态改变时所触发的事件处理器(在设置回调函数的时候经常用到, 所有的状态改变的时候都会触发这个事件处理器)
- readyState
解释: 用于获取请求的状态( 通过返回的代码是多少来判断当前的状态是什么情况)
返回值有:0: 未初始化; 1: 正在加载; 2:已加载; 3:交互中; 4:完成
- responseText
书上解释: 获取服务器的响应, 表示为字符串(response.getWrite().append("");将这个语句的内容返回到用户页面)
- responseXML
解释: 用于获取服务器的响应, 表示为字符串
- status
返回Http状态码——200:表示成功; 202:表示请求被接受, 但尚未成功; 400:错误的请求; 404:文件未找到; 500:内部服务器错误
- statusText
参考: 添加链接描述