JS原生AJAX

2020-04-12  本文已影响0人  码农界四爷__King

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);
        });
上一篇下一篇

猜你喜欢

热点阅读