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

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

提示:关于ajax的提问方式非常多,比方说ajax的原理,其实都是一个意思。


答:

ajax是使用js同步或异步请求服务器资源的一种方式。

实现的步骤如下:

1.创建Ajax核心对象XMLHttpRequest

var xmlhttp;

if (window.XMLHttpRequest)

 {// 兼容 IE7+, Firefox, Chrome, Opera, Safari

 xmlhttp=new XMLHttpRequest();

 }

else

 {// 兼容 IE6, IE5

 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

 }

2. 向服务器发送请求

xmlhttp. open(method,url,async);

send(string)

注意:open 的参数要牢记,很多面试官爱问这样的细节

method:请求的类型;GET 或 POST

url:文件在服务器上的位置

async:true(异步)或 false(同步)

 send(string)方法用于post请求才使用字符串参数,否则不用带参数。

请求方式为post,数据通过send( )发送时,要设置请求头的格式内容

xmlhttp.open("POST","ajax_test.html",true);

xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");

xmlhttp.send("fname=Henry&lname=Ford");

3.服务器响应处理

responseText 获得字符串形式的响应数据。

responseXML  获得 XML 形式的响应数据。

  3.1 同步处理

  xmlhttp.open("GET","ajax_info.txt",false);

xmlhttp.send();

document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

直接在send()后面使用

3.2 异步处理

异步处理相对比较麻烦,要读取状态事件,状态码

xmlhttp.onreadystatechange=function()

 {

 if (xmlhttp.readyState==4 && xmlhttp.status==200)

  {

  document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

  }

 }

  在onreadystatechange事件做处理,一共5中请求状态,从 0 到 4 发生变化。

0: 请求未初始化

1: 服务器连接已建立

2: 请求已接收

3: 请求处理中

4: 请求已完成,且响应已就绪

xmlhttp.status响应状态码,这个也是面试比较爱问的,这个必须知道4个以上,比较常见的有:

200: "OK" 

403  (禁止) 服务器拒绝请求。 

404  (未找到) 服务器找不到请求的网页。

408  (请求超时) 服务器等候请求时发生超时。

500  (服务器内部错误) 服务器遇到错误,无法完成请求。

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