zoukankan      html  css  js  c++  java
  • XMLHttpRequest的使用

    XMLHttpRequest的使用

    标签(空格分隔): JavaScript 前端 编程

    function sendAjax() {
      //构造表单数据
      var formData = new FormData();
      formData.append('username', 'johndoe');
      formData.append('id', 123456);
      //创建xhr对象 
      var xhr = new XMLHttpRequest();
      //设置xhr请求的超时时间
      xhr.timeout = 3000;
      //设置响应返回的数据格式
      xhr.responseType = "text";
      //创建一个 post 请求,采用异步
      xhr.open('POST', '/server', true);
      //注册相关事件回调处理函数
      xhr.onload = function(e) { 
        if(this.status == 200||this.status == 304){
            alert(this.responseText);
        }
      };
      xhr.ontimeout = function(e) { ... };
      xhr.onerror = function(e) { ... };
      xhr.upload.onprogress = function(e) { ... };
      
      //发送数据
      xhr.send(formData);
    }
    
    

    /*
    发起HTTP GET请求获取指定URL的内容
    如果响应成功到达,则传入responseText给回调函数
    如果响应在timeout时间内没有到达,则中止请求
    浏览器可能会在abort()后出啊发readystatechange
    如果部分请求结果到达,甚至可能设置status属性
    所有需要设置一个标记,当部分且超时的响应到达时不会调用回调函数
    如果使用load(当请求完成时触发)事件就没有这个风险
    */
    function(url,timeout,callback){
        var request = new XMLHttpRequest();
        var time = false;//是否超时
        var timer = setTimeout(function(){
            timeout = true;
            request.abort();//请求中止
        },timeout);
        request.open("GET",url);
        request.onreadystatechange = function(){
            if(request.readyState !==4) continue;//忽略未完成的请求
            if(timeout) return;//忽略中止请求
            clearTimeout(timer);//取消等待的超时
            if(request.status === 200)
                callback(request.responseText);
        }
        request.send(null);
    }
    

    参考地址1-SF
    参考地址2-CSDN

  • 相关阅读:
    ES6-10笔记(class类)
    ES6-10笔记(let&const -- Array)
    小程序的表单提交
    小程序表单回显
    小程序template模板的使用和模板多数据传递
    微信小程序的初始配置
    babel 版本原因运行报错,解决办法
    webpack 和 webpack-cli 安装和使用中出现的问题
    jQuery中操作属性的方法attr与prop的区别
    javaScript 添加和移除class类名的几种方法
  • 原文地址:https://www.cnblogs.com/ncellit/p/10760948.html
Copyright © 2011-2022 走看看