原生JavaScript实现Ajax的使用

Ajax 是一种无需重新加载整个网页的情况之下能够更新部分网页的技术。异步请求,局部刷新。

1.异步操作

  • 需要XMLHttpRequest对象。
  • 后台与服务器进行数据的交换,数据交换的同时不加载整个页面,可以对网页进行部分的更新。

2.XMLHttpRequest 对象

  • 实例化,创建XMLHttpRequest对象(需要判断网页)

    var request;
    if(window.XMLHttpRequest)
    {
        request=new XMLHttpRequest();//IE7+,Firefox,Chrome,Opera,Safari...
    }
    else
    {
        request=new ActiveXObject("Microsoft.XMLHTTP");//IE6,IE5
    }

2.HTTP请求

  • 包含四个部分
    • HTTP请求的方法或动作,即GET/POST
    • 正在请求的URL
    • 请求头,包含一些客户端环境信息,身份验证信息等
    • 请求体,即请求正文,可以包含客户提交的查询字符串信息,表单信息等
      请求头与请求体中间有空行,表示请求头已经结束
  • GET/POST
    • GET用于查询,不改变数据信息;用URL传递参数(所有人可见);所发送信息的数量有限制,一 般在2000个字符;幂等
    • POST用于修改、新建数据;传递的参数嵌入http请求体中;数量无限制;安全

3.HTTP响应

  • 包含三个部分
    • 状态码(数字和文字组成),用来显示请求是成功还是失败。
    • 相应头,包含许多有用的信息,如服务器类型、日期时间、内容类型。。。
    • 响应体,即相应正文
  • 状态码
    • 1xx:信息类,表示收到web浏览器请求,正在进一步的处理。
    • 2xx:成功,用户请求被正确接收,理解和处理。200 OK
    • 3xx:重定向,请求没有成功,客户必须采取进一步的动作
    • 4xx:客户端错误,提交的清错有错误。404 NOT Found
    • 5xx:服务器错误,服务器不能完成对请求的处理。500

4.步骤

  • 实例化,创建XMLHttpRequest对象(需要判断网页)

    var request;
    if(window.XMLHttpRequest)
    {
        request=new XMLHttpRequest();//IE7+,Firefox,Chrome,Opera,Safari...
    }
    else
    {
        request=new ActiveXObject("Microsoft.XMLHTTP");//IE6,IE5
    }
  • 发送请求(方法)
    • open(method,url,async) 参数分别为:GET或POST/地址/true或false(可不写) 调用http请求
    • send(string) 把请求发送到服务器。当方法为POST时要填写,GET可以不写或者写null
    • 在POST时,需要在open()和send()中添加一行代码,用来设置send()方法的格式
      request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  • 取得响应

    • responseTest:获得字符串形式的响应数据。
    • responseXML:获得XML形式的响应数据。
    • status和statusTest:以数字和文本形式返回HTTP状态码。
    • getAllResponseHeader():获取所有的响应报头
    • getResponseHeader():查询响应中的某个字段的值。
    • readyState属性:为4时表示请求已完成,且响应已就绪。
    var request=new XMLHttpRequest();
    request.open("GET","get.php",true);
    request.send();
    request.onreadystatechange=function()
    {
        if(request.readyState===4&&request.status===200)
        {
            //做一些事情 request.responseText
        }
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值