ajax、jsonp简单封装
生活随笔
收集整理的這篇文章主要介紹了
ajax、jsonp简单封装
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ajax
function ajax(options) {options=options || {};if ( ! options.url){return;}// 可選var data=options.data || {};var type=options.type || 'get';if (window.XMLHttpRequest){var oAjax=new XMLHttpRequest();}else{var oAjax=new ActiveXObject('Microsoft.XMLHTTP');}switch (type.toLowerCase()){case 'get':oAjax.open('get', options.url+'?'+json2url(data), true);oAjax.send();break;case 'post':oAjax.open('post', options.url, true);oAjax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');oAjax.send(json2url(data));break; }oAjax.onreadystatechange=function (){if (oAjax.readyState == 4){if (oAjax.status>=200 && oAjax.status<300 || oAjax.status==304){options.success && options.success(oAjax.responseText);}else{options.fail && options.fail(oAjax.status);}}}; }function json2url(data) {data['t']=Math.random();var arr=[];for (var name in data){arr.push(name+'='+data[name]);}return arr.join('&'); }jsonp
function jsonp(options) {options=options || {};var url=options.url;if ( ! url){return;}var data=options.data || {};var cbName=options.cbName || 'cb';var fnName='jsonp_'+Math.random();fnName=fnName.replace('.', '');window[fnName]=function (res){options.success && options.success(res);oHead.removeChild(oS);// window[fnName]=null;};data[cbName]=fnName;var oS=document.createElement('script');oS.src=url+'?'+json2url(data);var oHead=document.getElementsByTagName('head')[0];oHead.appendChild(oS); }function json2url(json) {var arr=[];for (var name in json){arr.push(name+'='+json[name]);}return arr.join('&'); }總結
以上是生活随笔為你收集整理的ajax、jsonp简单封装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AMD、CMD、CommonJS、ES6
- 下一篇: code ./打不开vscode编辑器