每日JavaScript - 12

今天要说说Ajax。(自己对这方面不了解,为了避免误人子弟,只作个人浏览)

 xhr.open("get", "example.php", false)

这段代码会启动一个针对example.php的GET请求,第三个Boolean为是否异步的意思
在调用open()方法之后而且调用send()方法之前调用setRequestHeader()
可以自定义请求头部信息

xhr.open('POST', '/test/', true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded"); // 将请求头设置为表单方式提交
xhr.send('name=luozh&size=12');

xhr的readyState属性

  1. 未初始化。尚未调用open()方法
  2. 启动。已经调用open()方法,但尚未调用send()方法。
  3. 发送。已经调用send()方法,但尚未接受到响应。
  4. 接受。已经接受到部分响应数据。
  5. 完成。已经接受到全部响应数据,而且已经可以在客户端使用。每次状态的改变都会触发一次readystatechange事件,我们使用onreadystatechange属性监听,
var xhr;

if (window.XMLHttpRequest) {
    xhr=new XMLHttpRequest();
} else if (window.ActiveXObject) {
    xhr=new ActiveXObject("Microsoft.XMLHTTP");
}

if (xhr) {
    xhr.open('GET', '/test/', true);     // 以GET请求的方式向'/test/'路径发送异步请求
    xhr.send();
    xhr.onreadystatechange = function () {    // 利用onreadystatechange监测状态
        if (xhr.readyState === 4) {    // readyState为4表示请求响应完成
            if (xhr.status === 200) {    // status为200表示请求成功
                console.log('执行成功');
            } else {
                console.log('执行出错');
            }   
        }
    }
}

xhr其他属性
responseText; 作为响应主体被返回的文本
status: 响应的HTTP状态
statueText: HTTP状态的说明

status状态码为200作为成功的标志,304时表示请求的资源没有被修改。可以直接使用浏览器中缓存的版本。

题外话
此文总结于JavaScript高级程序设计的Ajax章节,对于经典的知识还是看经典书籍最好。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值