深圳智学无忧教育科技(单题)

题型 难易度 出现频率 浏览 评论
问答题 19 0
试题信息收集不易,转发请带上出处,不甚感谢!如果您对任何编程问题还有疑问,欢迎点击下方按钮向老师提问!
问答题

说明:提问的方式很多,但回答的套路都是相同的

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的原理,然后在来回答封装。很多面试者是被封装误导了,也吓倒了!

还能输入{{limitInput-commentDet.length}}个字符