美文网首页
JS原生AJAX

JS原生AJAX

作者: 码农界四爷__King | 来源:发表于2020-04-12 10:37 被阅读0次

    common.js

    const api = 'http://api.baidu.com/';
    //获取当前域名
    var domain = document.domain;
    console.log("domain" + domain)
    
    function Ajax(type, url, data, success, failed) {
        // 创建ajax对象
        var xhr = null;
        if(window.XMLHttpRequest) {
            xhr = new XMLHttpRequest();
        } else {
            xhr = new ActiveXObject('Microsoft.XMLHTTP')
        }
        var type = type.toUpperCase();
        // 用于清除缓存
        var random = Math.random();
        if(typeof data == 'object') {
            var str = '';
            str += 'domain' + '=' + "http://" + domain + '&'; //版本
            str += 'version' + '=' + "2.22" + '&'; //版本
            str += 'app' + '=' + "12" + '&'; //app
            str += 'accout_password' + '=' + "A28AE085D23518A0" + '&'; //秘钥
            for(var key in data) {
                str += key + '=' + data[key] + '&';
            }
            data = str.replace(/&$/, '');
        }
        if(type == 'GET') {
            if(data) {
                xhr.open('GET', api + url + '?' + data, true);
            } else {
                xhr.open('GET', api + url + '?t=' + random, true);
            }
            xhr.send();
        } else if(type == 'POST') {
            xhr.open('POST', api + url, true);
            // 如果需要像 html 表单那样 POST 数据,请使用 setRequestHeader() 来添加 http 头。
            xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xhr.send(data);
        }
        // 处理返回数据
        xhr.onreadystatechange = function() {
            if(xhr.readyState == 4) {
                if(xhr.status == 200) {
                    if(JSON.parse(xhr.responseText).code == '1' || JSON.parse(xhr.responseText).code == '200') {
                        success(JSON.parse(xhr.responseText).data);
                    } else {
                        console.log('ds')
                    }
                } else {
                    if(failed) {
                        failed(xhr.status);
                    }
                }
            }
        }
    }
    

    html中引用

    var sendData = {
                "screen_type": '', 
                "screen_id": '', 
                "screen_name": ''
            };
            Ajax('post', 'api/home/home', sendData, function(data) {
                console.log(data);
            }, function(error) {
                console.log(error);
            });
    

    相关文章

      网友评论

          本文标题:JS原生AJAX

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