原生javascript ajax封装

function ajax(opt) {

    opt = opt || {};

    opt.method = opt.method.toUpperCase() || 'POST'; //method为传参方式

    opt.url = opt.url || ''; //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]);

    }

    var postData = params.join('&');

    if (opt.method.toUpperCase() === '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') {

        xmlHttp.open(opt.method, opt.url + '?' + postData, opt.async);

        xmlHttp.send(null);

    }

    xmlHttp.onreadystatechange = function () {

        if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {

            opt.success(xmlHttp.responseText);

        }

    };

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • /* 封装ajax函数 @param {string}opt.type http连接的方式,包括POST和GET两...
    岳小弟阅读 1,715评论 0 0
  • 找到fullcalendar.js, 找到代码为 isRTL:false,这句话 输入以下几句 monthName...
    迷你小小白阅读 5,668评论 0 1
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 6,202评论 0 2
  • 今天听语文课,也许是我真的好久没讲课了,听着人家的课觉得竟然莫名有点紧张。这位老师讲得好好。 既幽默又严谨,引经据...
    念情浅如川阅读 1,436评论 1 2
  • 周末两天时间过的特别快,今天也算是在屋里呆了一整天吧,看了看计算机基础的课程,看完后发现确实如自己所想的一样,不知...
    阳春没有雪阅读 1,252评论 0 1

友情链接更多精彩内容