更多Ajax面试题目可以查看专栏内容
1.AJAX应用和传统Web应用有什么不同?
传统的web前端与后端的交互中,浏览器直接访问Tomcat的Servlet来获取数据。Servlet通过转发把数据发送给浏览器 。 当我们使用AJAX之后 ,浏览器是先把请求发送到XMLHttpRequest异步对象之中,异步对象对请求进行封装,然后再与发送给服务器。服务器并不是以转发的方式响应,而是以流的方式把数据返回给浏览器 XMLHttpRequest异步对象会不停监听服务器状态的变化,得到服务器返回的数据,就写到浏览器上【因为不是转发的方式,所以是无刷新就能够获取服务器端的数据】
2.请介绍一下XMLhttprequest对象
Ajax的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。通过XMLHttpRequest对象,Web开发人员可以在页面加载以后进行页面的局部更新
介绍一下XMLHttpRequest对象的常用方法和属性
方法
open() (String method,String url,boolean asynch ,String username,String password)send(content) setRequestHeader(String header,String value) getAllResponseHeaders() getResponseHeader(String header) abort()
常用的方法就是黑色粗体的前三个
open():该方法创建http请求 第一个参数是指定提交方式(post、get) 第二个参数是指定要提交的地址是哪 第三个参数是指定是异步还是同步(true表示异步,false表示同步) 第四和第五参数在http认证的时候会用到。是可选的
setRequestHeader(String header,String value):设置消息头(使用post方式才会使用到,get方法并不需要调用该方法) xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
send(content):发送请求给服务器 如果是get方式,并不需要填写参数,或填写null 如果是post方式,把要提交的参数写上去
属性
onreadystatechange:请求状态改变的事件触发器(readyState变化时会调用此方法),一般用于指定回调函数 readyState:请求状态readyState一改变,回调函数被调用,它有5个状态 0:未初始化 1:open方法成功调用以后 2:服务器已经应答客户端的请求 3:交互中。Http头信息已经接收,响应数据尚未接收。 4:完成。数据接收完成
responseText:服务器返回的文本内容 responseXML:服务器返回的兼容DOM的XML内容 status:服务器返回的状态码 statusText:服务器返回状态码的文本信息
上面有两个地方都提及了回调函数,回调函数是什么??
回调函数就是接收服务器返回的内容!