原生post请求

 ̄綄美尐妖づ 提交于 2019-12-30 21:17:08
ajax: function(opt) {
        opt = opt || {};
        opt.method = opt.method.toUpperCase() || 'POST';
        opt.url = opt.url || ''; //请求地址
        opt.async = opt.async || true; //是否异步请求
        opt.data = opt.data || null; //传输数据
        opt.success = opt.success || function() {}; //服务器响应成功进行相应的处理
        var xmlHttp = null;
        if (XMLHttpRequest) {
            xmlHttp = new XMLHttpRequest(); //服务器请求对象
        } else {
            xmlHttp = new ActiveXObject('Microsoft.XMLHTTP'); //兼容微软请求对象
        }
        var params = [];
        for (var key in opt.data) {
            // params.push(key + '=' + opt.data[key]);
            params.push(encodeURIComponent(key) + '=' + encodeURIComponent(opt.data[key]));
        }
        var postData = params.join('&');
        if (opt.method.toUpperCase() === 'POST') {
            //请求方法为POST,则执行如下操作
            xmlHttp.open(opt.method, opt.url, opt.async);
            xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8');
            xmlHttp.send(postData);
        } else if (opt.method.toUpperCase() === 'GET') {
            //请求方法为GET,则执行如下操作
            xmlHttp.open(opt.method, opt.url + '?' + postData, opt.async);
            xmlHttp.send(null);
        }
        xmlHttp.onreadystatechange = function() {
            if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
                //响应是否成功
                var data = JSON.parse(xmlHttp.responseText);
                opt.success(data);
            }
        };
    },

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!