您好,欢迎访问一九零五行业门户网

原生js封装ajax兼容jsonp实例分享

本文主要为大家带来一篇使用原生js封装的ajax实例(兼容jsonp)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。
实例如下:
/* 封装ajax函数  * @param {string}opt.type http连接的方式,包括post和get两种方式  * @param {string}opt.url 发送请求的url  * @param {boolean}opt.async 是否为异步请求,true为异步的,false为同步的  * @param {object}opt.data 发送的参数,格式为对象类型  * @param {function}opt.success ajax发送并接收成功调用的回调函数  */   function ajax(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 () {};     opt.datatype = opt.datatype || json;     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(opt.datatype != 'jsonp'){         if (xmlhttp.readystate == 4 && xmlhttp.status == 200) {           opt.success(xmlhttp.responsetext);         }       }else{         //alert(1);          if (xmlhttp.readystate == 4 && xmlhttp.status == 200) {           var oscript = document.createelement('script');           document.body.appendchild(oscript);           var callbackname = 'wangxiao'           oscript.src = opt.url + ? + postdata+'&callback='+callbackname;           window['wangxiao'] = function(data) {             opt.success(data);             document.body.removechild(oscript);           };         }       }     };   }   export default ajax;
相关推荐:
javascript自己封装ajax的js
javascript 封装ajax传递的数据代码_javascript技巧
原生js封装ajax插件(同域、jsonp跨域)_javascript技巧
以上就是原生js封装ajax兼容jsonp实例分享的详细内容。
其它类似信息

推荐信息