深圳智学无忧教育科技(单题)
题型 | 难易度 | 出现频率 | 浏览 | 评论 |
---|---|---|---|---|
问答题 | 63 | 0 |
问答题
- Ajax 是什么? 如何创建一个Ajax?
提示:关于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 (服务器内部错误) 服务器遇到错误,无法完成请求。