ajax处理网络请求

Ajax模块在处理网络请求的时候包括以下四个步骤

1.通过XMLHttpRequest类创建xhr对象

​ 2.为xhr对象添加属性与回调方法 ​

3.令xhr对象执行open()方法,指明请求被发往某处 ​

4.令xhr对象执行send()方法,发出请求。

//1.创建对象
var xhr;
if (window.XMLHttpRequest){//普通浏览器    
	xhr=new XMLHttpRequest();
}else{//老版本IE
	xhr=new ActiveXObject("Microsoft.XMLHTTP");
}
//3.监听服务器响应
xhr.onreadystatechange=function(){
    if(xhr.readyState==4&&xhr.status==200){
          console.log(xhr.responseText);//将接收到的服务器数据显示到控制台中
    }
};
//2.打开链接
xhr.open("请求方式","请求地址",是否异步:默认为异步true);
//3.5 请求头(POST请求时设置)
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
//4.发送请求
xhr.send();

post请求头格式

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8表示客户端可以接受的内容类型,多个值使用;分号隔开q=0.9 表示权重优先级,/表示可以接受任意类型内容;
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3表示客户端可以接受的语言
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64x64;浏览器信息,例如使用的是网井的内核, windows64位系统;
Accept-Encoding: gzip, deflate支持的压缩格式
Host: localhost:8888访问地址
Connection: keep-alive保持连接 和HTTP1.1版本有关,默认保持3s
Content-Type: application/x-www-form-urlencoded表单提交时才有可能出现,表示表单的数据类型,使用url编码,url编码 % 16位数
Content-Length: 7post请求 请求体长度
Upgrade-Insecure-Requests: 1告诉服务器,浏览器可以处理https协议、

请求参数

 // post参数在send中
            xhr.send("stuName=" + username + "&stuScore=" + score)
 // ajax发送get请求参数,永远在地址后面
            xhr.open("GET","04.php?uname=" + value,true)

xhr对象的常用属性与方法

1.onreadystatechange属性指向一个回调函数。当页面的加载状态发生改变的时候readyState属性就会跟随发生变化,而这时readystatechange属性所对应的回调函数就会自动被调用。 ​

语法:xhr.onreadystatechange = function(){};

2.状态码

语法:xhr.onreadystatechange = function(){ ​ if(xhr.readyState == n){ ​ // 执行对应的函数 ​ } ​ }

说明:

值为0,对应常量UNSENT ​ 表示XMLHttpRequest实例已经生成,但是open()方法还没有被调用。 ​ ​

值为1,对应常量OPENED ​ 表示send()方法还没有被调用,仍然可以使用setRequestHeader() 设定HTTP请求头 ​ ​

值为2,对应常量HEADERS_RECEIVED ​ 表示send()方法已经执行,并且头信息和状态码已经收到。 ​ ​

值为3,对应常量LOADING ​ 表示正在接收服务器传来的body部分的数据,如果responseType属性 ​ 是text或者空字符串,responseText就会包含已经收到的部分信息。

值为4,对应常量DONE,表示服务器数据已经完全接收,或者本次接收已经失败了

3.响应码

语法:if(xhr.readyState == n){ ​ if(xhr.status == 200){ ​ //通信成功 ​ } ​ } ​ 说明: ​ a.本属性是只读属性。 ​ b.本属性有以下可能值:

​ 200, OK,访问正常

​ 301, Moved Permanently,永久移动 ​

302, Move temporarily,暂时移动 ​

304, Not Modified,未修改 ​

307, Temporary Redirect,暂时重定向 ​

401, Unauthorized,未授权 ​ 403, Forbidden,禁止访问

404, Not Found,未发现指定网址 ​

500, Internal Server Error,服务器发生错误

补充:补充:一般来说认为200就是通信成功的标志。

4.statusText

描述: 表示服务器发送的状态提示,是一个只读字符串。 ​ 语法:xhr.statusText ​ 说明:不同于status属性,该属性返回状态码所对应

5. responseText

描述:返回从服务器接收到的字符串内容,该属性为只读。 ​ 如果本次请求没有成功或者数据不完整,该属性就会等于null。 ​ 如果服务器返回的数据格式是JSON,就可以使用responseText属性来进行数据解析。 ​ 语法:xhr.responseText

的状态信息。 ​ 比如OK

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值