zoukankan      html  css  js  c++  java
  • gp更新来的太快

    意外总是会发生

    添加一个判断function的分支,过滤掉function,其实也考虑再进一步去分析它的作用,稍后再议。

    更新一下

    var gnp = {
        get: function(url) {
            return this._get(url, true)
        },
        synget: function(url) {
            return this._get(url, false)
        },
        _get: function(url, syn) {
            const promise = new Promise(function(resolve, reject) {
                const handler = function() {
                    if(this.readyState !== 4) {
                        return;
                    }
                    if(this.status === 200) {
                        resolve(this.response);
                    } else {
                        reject(new Error(this.statusText));
                    }
                }
                var request = new XMLHttpRequest()
                request.open('GET', url, syn)
                request.onreadystatechange = handler
                request.send(null)
            })
            return promise
        },
        post: function(url, data) {
            return this._post(url, data, true)
        },
        synpost: function(url, data) {
            return this._post(url, data, false)
        },
        _post: function(url, data, syn) {
            const promise = new Promise(function(resolve, reject) {
                const handler = function() {
                    if(this.readyState !== 4) {
                        return;
                    }
                    if(this.status === 200) {
                        resolve(this.response);
                    } else {
                        reject(new Error(this.statusText));
                    }
                }
                var request = new XMLHttpRequest()
                request.open('POST', url, syn)            
                request.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
                request.onreadystatechange = handler
                
                
                var ret = gnp._trans(data)
                
                request.send(ret.substr(0,ret.length-1))
            })
            return promise
        },
        _trans : function(data,key = ''){
            var ret = ""                
            if(typeof data == 'object'){
                for(let it in data){
                    ret += gnp._trans(data[it],key + (key == ''?it:"["+ it + "]"))                    
                }
            }else if(Array.isArray(data)){
                for(var i = 0;i < data.length;i++){
                    ret += gnp._trans(data[i],key + "[" + i + "]") 
                }        
            }else if(typeof data == 'function'){
                
            }else{
                console.log(data)
                ret +=encodeURIComponent( key) + '=' + encodeURIComponent(data)  + "&" 
            }
            return ret            
        }    
    }
  • 相关阅读:
    解决Tomcat请求中文乱码的问题
    Bootstrap 兼容 IE
    Spring+MyBatis多数据源配置实现
    年度总结与计划
    AJAX 提交表单以及文件上传
    移动端Web开发调试工具:Chrome DevTools
    SpringMVC 之 @ResponseBody 和 @RequestBody
    goland快键键防忘
    MySQL日志文件影响数据库的各种类型活动
    何为云计算
  • 原文地址:https://www.cnblogs.com/allofalan/p/9968529.html
Copyright © 2011-2022 走看看