zoukankan      html  css  js  c++  java
  • axios的封装

    function axios(options){
        var promise = new Promise((resolve,reject)=>{
            var xhr = null;
            if(window.XMLHttpRequest){
                xhr = new XMLHttpRequest();
            }else{
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
            }
            var str = "";
            //进行传入数据的处理
            for(var key in options.data){
                str += "&" + key + "=" + options.data[key];
            }
            if(options.method == "get"){
                var url = options.url + "?" + data.slice(1);//因为在前面将传入的数据多加了一个&符号,然而需要的是&之后的数据
                xhr.open(options.method,url);
                xhr.send();//通过get方式请求数据不需要发送数据
            }else if(options.method == "post"){
                xhr.open(options.method,options.url);
                xhr.setRequestHeader("content-type","application/x-www-form-urlencoded");
                xhr.send(str);
            }
            xhr.onreadystatechange = function(){
                var timer = null;
                //timeout是ajax请求中的一个默认属性,表示时间。如果该默认属性存在则使用默认值,否则使用5000毫秒
                var timeout = options.timeout?options.timeout:5000;
                if(xhr.readState == 4 && xhr.status == 200){
                    var res = JSON.parse(xhr.responseText);
                    clearTimeout(timer);
                    resolve(res);
                }
                timer = setTimeout(()=>{
                    clearTimeout(timer);
                    reject(xhr.status);
                },timeout);
            }
        })
        return promise;
    }
  • 相关阅读:
    鸟哥linux——分区命令:split
    鸟哥linux——管线命令
    鸟哥linux——命令执行的判断依据:;,&&,||
    linux:数据流重导向
    Tensorflow计算模型——计算图
    DNS域名解析与本机Host
    相似图片搜索的原理
    谈谈回文子串
    关于字符串精确匹配
    音频采样
  • 原文地址:https://www.cnblogs.com/Leslie-Cheung1584304774/p/10576763.html
Copyright © 2011-2022 走看看