Ajax学习笔记

1.创建对象
var xhr = new XMLHttpRequest();

4.设置状态变化的监听事件
xhr.onreadystatechange = function(){

    //5.判断当前请求的状态
    if(xhr.readyState == 4){ 
        //6.获取请求结果:
        console.log(xhr.responseText);
    }

};

2.创建请求: get/post
xhr.open('get','url地址')

3.发送请求
xhr.send(null); // post请求的form表单数据, get请求设置null即可
  • 请求状态:xhr.readyState
    0:创建对象
    1:已经调用open方法
    2:已经调用send方法
    3:开始返回数据,但是不完整
    4:数据返回完整,请求成功

  • 请求监听事件:xhr.onreadystatechange
    可以监听到1-4这几个状态,无法监听到0的状态

  • 对特殊字符进行编码:

    • encodeURIComponent(str)
  • POST请求需要设置请求头信息:(必须要在open方法之后调用)

    • xhr.setRequestHeader("content-type","application/x-www-form-urlencoded");
  • 同步异步请求

    • open(get|post,url,[true异步|false同步])
  • 给请求地址加上随机数,可以避免浏览器缓存问题

  • 字符串转换成json:

    • var json = "{'city':'shen zhen'}";
    • eval("var j_info="+json);
  • post提交表单数据

    var fd = new FormData(表单对象);
    xhr.send(fd)
  • 注意:

    • 不要设置setRequestHeader了
    • 表单中一定要写name属性
  • 进度条

    • xhr.upload.onprogress = function(evt){
      var loaded = evt.loaded; //已上传大小
      var total = evt.total; //总大小
      var per = Math.floor((loaded/total)*100)+"%"; //计算百分比

      //设置指定元素的样式
      document.getElementById('son').style.width = per;
      }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 慕课网Ajax全接触 Ajax全称: Asynchronous JavaScript and XML(异步的Jav...
    垃圾简书_吃枣药丸阅读 4,093评论 0 8
  • 一、Ajax技术概念 Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。Ajax的全称是As...
    远远暖暖阅读 2,767评论 0 0
  • Ajax 什么是ajax AJAX即“Asynchronous JavaScript and XML”(异步的Ja...
    恰皮阅读 9,550评论 5 48
  • 从下面这个简单的AJAX实例中,一步一步来分析代码每一部分的作用及功能,并对相关的名词进行了解释。 一个简单的AJ...
    Ginkela阅读 2,784评论 0 0
  • %1.AJAX = Asynchronous JavaScript and XML(异步的 JavaScript ...
    wangzaiplus阅读 2,801评论 0 0