ajax

  1. 实例化XMLHttpRequest对象。
var xhr=null;
 try {
       xhr=new XMLHttpRequest();
  }catch (e){
        //ie6及其以下的版本
       xhr=new ActiveXObject('Microsoft.XMLHTTP');
       }
  1. 在使用xhr对象时,要使用的第一个方法是open().
xhr.open('get','1.example.txt',true);

这里接收三个参数,要发送请求的类型(get,post),请求的URL和是否异步(true:异步,false:同步)。
注意:这里并不会真正发送请求,而是启动一个请求以备发送

  1. 发送请求,调用send()方法。
xhr.send(null)

GET请求没有主体,所以应该传递null或者省略这个参数。POST请求通常拥有主体,同时它应该匹配使用setRequestHeader()指定的“Content-Type”头。

  1. get请求。
    get请求通常用于向服务器查询某些信息,必要时,可以将查询字符串参数追加到URL的末尾,但参数必须经过正确的编码。
function addURLParam(url,data) {
        url +='?';
        var arr = [];
        for(var name in data) {
            //   encodeURIComponent() :用于对 URI 中的某一部分进行编码
            arr.push(encodeURIComponent(name) + '=' + encodeURIComponent(data[name]));
        }
        return url+arr.join('&');
    }

这里的data格式是json。
2.post请求。
对于请求,通常像服务器发送应该被保存的数据,应该把数据作为请求的主题提交,它不是以地址形式传参,而是在send()中传参。

xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); 
      // 传输数据  
      xhr.send(data);  

4.监听事件,只要 readyState 的值变化,就会调用 readystatechange 事件.。

xhr.onreadystatechange = function() {   
              //readyState值为4,说明所有数据已就绪 
        if ( xhr.readyState == 4 ) {
            if ( xhr.status == 200 && xhr.status<300 ) {
                alert(xhr.responseText)
            } else {
                alert('出错了,Err:' + xhr.status);
            }
        }   
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ajax作为前端开发必需的基础能力之一,你可能会使用它,但并不一定懂得其原理,以及更深入的服务器通信相关的知识。在...
    萧玄辞阅读 848评论 0 0
  • AJAX 原生js操作ajax 1.创建XMLHttpRequest对象 var xhr = new XMLHtt...
    碧玉含香阅读 3,351评论 0 7
  • 大家好,我是IT修真院深圳分院第3期的学员,一枚正直纯洁善良的前端程序员,今天给大家分享一下,修真院官网前端工程师...
    大大头大阅读 7,871评论 1 72
  • 没有学Ajax之前,就在想这到底是一门什么技术,问自己什么是Ajax?Ajax有哪些重点概念?Ajax如何运用?听...
    张延伟阅读 2,063评论 0 8
  • 1. 绪论: AJAX技术的核心为XHR(XMLHttpRequest)对象AJAX功能:向服务器请求额外的数据而...
    xiaoguo16阅读 251评论 0 1