深圳智学无忧教育科技(单题)
题型 | 难易度 | 出现频率 | 浏览 | 评论 |
---|---|---|---|---|
问答题 | 19 | 0 |
试题信息收集不易,转发请带上出处,不甚感谢!如果您对任何编程问题还有疑问,欢迎点击下方按钮向老师提问!
问答题
- Ajax的封装
说明:提问的方式很多,但回答的套路都是相同的
1.有没有做ajax的封装
2.ajax的原理是什么
答:
1.创建XHR(XmlHttpRequest的缩写)对象,IE通过ActiveXObject对象创建,其它的通过XmlHttpRequest对象创建。
2.使用open()方法建立连接,有三个参数,第一个参数是请求类型,通过是get或post请求,第二个是请求的地址,第三个是否为异步请求,true表示异步,false表示同步。
3.使用send()发送请求,接一个参数,需要发送的的信息,以URL参数的形式拼接,如果没有为null
4.数据响应,这个阶段涉及到的API主要有responseText,responseXML,status(状态码),对于异步请求还会涉及到readyState和状态改变事件onreadystatechange。但读取状态改变时会触发这个事件。读取状态有五个阶段
0:未初始化,还没有调用open方法
1:启动,调用了open方法,但还没有调用send方法
2:发送,调用了send方法,但还没有响应
3:接收,收到了部分响应的数据
4:完成,收到全部响应的数据
status表示http的状态码,表示读取的信息是否正确,200表示成功,500表示服务器错误,304表示资源没有改变,使用缓存的数据。
为了方便使用和重用,我们会创建一个对象,然后创建一个ajax的方法,传递一个对象参数,参数包括请求的地址、请求的方式、请求的数据,同步或异步,请求头等信息,成功请求的处理函数,错误请求的处理函数,为了方便在单独创建get和post两个常用的请求方式。
提醒:这个问题对方还是希望你能够弄清楚ajax的原理,然后在来回答封装。很多面试者是被封装误导了,也吓倒了!