AJAX


同步和异步

异步的javascript和xml就是AJAX,不用全部重新加载,可以实现异步请求,局部刷新的功能。

XMLHttpRequest对象创建

    //实例化XMLHttpRequest对象(ie5,ie6不支持)
    var request = new XMLHttpRequest();
    //兼容性代码书写
    if(window.XMLHttpRequest){
        request = new XMLHttpRequest();//IE7+,Firefox,Chrome,Opera,Safari...
    } else {
        request = new ActiveXObject("Microsoft.XMLHTTP");//IE6,IE5
    }
    

HTTP

http是计算机通过网络进行通讯的规则,是一种无状态协议

HTTP请求

一个完整的HTTP请求过程,通常有下面7个步骤:

  1. 建立TCP连接
  2. Web浏览器向Web服务器发送请求命令
  3. Web浏览器发送请求头信息
  4. Web服务器应答
  5. Web服务器发送应答头信息
  6. Web服务器向浏览器发送数据
  7. Web服务器关闭TCP连接

一个HTTP请求一般由四部分组成

  1. HTTP请求的方法或动作,比如是GET还是POST请求
  2. 正在请求的URL,总得知道请求的地址是什么吧
  3. 请求头,包含一些客户端环境信息,身份验证信息等
  4. 请求体,也就是请求正文,请求正文中可以包含客户提交的查询字符串信息,表单信息等等

GET请求和POST请求

GET请求
一般用于信息获取
使用URL传递参数
对所发送信息的数量也有限制,一般在2000个字符

POST请求
一般用于修改服务器上的资源
对所发送信息的数量无限制

HTTP响应

一般由三部分组成

  1. 一个数字文字组成的状态码,用来显示请求是成功还是失败
  2. 响应头,响应头也和请求头一样包含许多有用的信息,例如服务器类型、日期时间、内容类型和长度等
  3. 响应体,也就是响应正文

HTTP状态码由3位数字构成,其中首位数字定义了状态码的类型:
1XX:信息类,表示收到web浏览器请求,正在进一步的处理中
2XX:成功,表示用户请求被正确接收,理解和处理例如:200 OK
3XX:重定向,表示请求没有成功,客户必须采取进一步的动作
4XX:客户端错误,表示客户端提交的请求有错误,例如:404 NOT Found,意味着请求中所引用的文档不存在
5XX:服务器错误,表示服务器不能完成对请求的处理:如 500

XMLHttpRequest发送请求

  • open(method,url,async) //发送请求的方法
    -- method:GET 或者 POST
    -- url:相对地址或者绝对地址
    -- async:异步为true(default,不填写为此项),同步为fasle
  • send(string)

例:

    //
    request.open();
    request.send();
    
    //
    
    
    //

XMLHttpRequset取得响应

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

  • responseXML:获得XML形式的响应数据

  • status和statusText:以数字和文本形式返回HTTP状态码

  • getAllResponseHeader():获取所有的响应报头

  • getResponseHeader():查询响应中的某个字段的值

    readyState属性

    1. 0:请求未初始化,open还没有调用
    2. 1:服务器连接已建立,open已经调用了
    3. 2:请求已接收,也就是接收到头信息了
    4. 3:请求处理中,也就是接收到响应主体了
    5. 4:请求已完成,且响应已就绪,也就是响应完成了
    var request = new XMLHttpRequest();
    request.open();
    request.send();
    request.onreadystatechange()

你可能感兴趣的:(AJAX)