ajax

作者: 蘑菇酱960903 | 来源:发表于2018-05-18 13:48 被阅读0次

    是什么?

    当需要从服务器中获取数据或者提交数据,发送请求给服务器,可以不必重载整个页面,就能对页面进行更新

    过程?

    客户端发起http请求,服务器接受请求后做出响应,发送响应数据给客户端

        //readyState: 
        //0: 连接尚未初始化,还没有调用open
        //1: 请求已经准备好,已经open,可以send
        //2: 服务器接受到请求---作出相应请求正在处理中
        //3: 服务器已从请求中获取到了数据,但是响应数据还没有准备好
        //4: 服务器已经请求完毕,发送响应数据
    

    get / post 区别?

    1. get方法中send参数内容无效,但是在firefox中得加上null;在post中在send中加上额外信息
    2. get在于获取服务器数据,post在于客户端发送数据去更新服务端
    3. get方法会将参数暴露在url中,而post不会
    4. post方式需要指定请求头的类型(表单:application/x-www-form-urlencoded,如果在form表单指定了enctype属性,就不需要),get不需要指定
        function createRequste() {
          if (window.XMLHttpRequest) {
            return new XMLHttpRequest()
          } else {
            return new ActiveObject('Microsoft.XMLHTTP')
          }
        }
        var xhr = createRequest();
    
        
        xhr.open('GET', url, true);
        xhr.onreadystatechange = function () {
          if (xhr.readyState === 4) {
            if (xhr.state === 200) {
    
            }
          }
        }
        xhr.send();
    
    
        xhr.open('POST', url, true);
        xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8'),
        xhr.onreadystatechange = function () {
          if (xhr.readyState === 4) {
            if (xhr.state === 200) {
    
            }
          }
        }
        xhr.send();
    

    应用场景?

    1. 对数据进行过滤和操作的场景
    2. 添加或者删除列表中的数据
    3. 提交表单内容

    form 提交

    • user agent :先确定操作的成功执行 -》 生成一个form data -》 对form data解码(解码方式看content-type)-》提交解码之后的form data给服务器
      关于form表单提交数据时的设置content-type / enctype
      作用: 当客户端提交表单数据给服务器时,需要指定提交的表单数据的解码方式,之后将解码后的表单数据提交给服务器
    编码方式 应用 编码规则
    application/x-www-form-urlencoded 单纯的text / ASCII数据 空格符转换成‘+’,特殊字符转换成十六进制的ASCII
    multipart/form-data 二进制数据 | non-ASCII 不会编码任何的字符串
    text/plain 字符串 空格符转换成‘+’

    相关文章

      网友评论

          本文标题:ajax

          本文链接:https://www.haomeiwen.com/subject/ymmwdftx.html