@fusioncharts/core
Version:
JavaScript Data Visualisation Library
1 lines • 4.04 kB
JavaScript
exports.__esModule=true;exports.default=void 0;var _eventApi=require("../event-api");var _lib=require("../lib");var UNDEF,MSXMLHTTP="Microsoft.XMLHTTP",MSXMLHTTP2="Msxml2.XMLHTTP",FUNCTION="function",GET="GET",POST="POST",XHREQERROR="XmlHttprequest Error",XREQUESTEDBY="X-Requested-By",RUN="run",ERRNO="1110111515A",win=window,version=parseFloat(win.navigator.appVersion.split("MSIE")[1]),ielt8=!!(version>=5.5&&version<=7),fileProtocol=win.location.protocol==="file:",AXObject=win.ActiveXObject,XHRNative=(!AXObject||!fileProtocol)&&win.XMLHttpRequest,counters={objects:0,xhr:0,requests:0,success:0,failure:0,idle:0},_newXmlHttpRequest=function newXmlHttpRequest(){var xmlhttp;if(XHRNative){_newXmlHttpRequest=function newXmlHttpRequest(){counters.xhr++;return new XHRNative};return _newXmlHttpRequest()}try{xmlhttp=new AXObject(MSXMLHTTP2);_newXmlHttpRequest=function newXmlHttpRequest(){counters.xhr++;return new AXObject(MSXMLHTTP2)}}catch(e){try{xmlhttp=new AXObject(MSXMLHTTP);_newXmlHttpRequest=function newXmlHttpRequest(){counters.xhr++;return new AXObject(MSXMLHTTP)}}catch(err){xmlhttp=false}}return xmlhttp};var Ajax=function(){function Ajax(success,error){this.onSuccess=success;this.onError=error;this.open=false;counters.objects++;counters.idle++}Ajax.stats=function stats(type){return type?counters[type]:(0,_lib.extend2)({},counters)};var _proto=Ajax.prototype;_proto.transact=function transact(method,url,data,callbackArgs){var wrapper=this,xmlhttp=wrapper.xmlhttp,headers=Ajax.headers,errorCallback=wrapper.onError,successCallback=wrapper.onSuccess,isPost=method===POST,postData,xRequestedBy=XREQUESTEDBY,hasOwn=Object.prototype.hasOwnProperty,i;if(url.search(/^(http:\/\/|https:\/\/)/)!==-1&&win.location.hostname!==/(http:\/\/|https:\/\/)([^\/\:]*)/.exec(url)[2]){delete headers[xRequestedBy]}else{!hasOwn.call(headers,xRequestedBy)&&(headers[xRequestedBy]="FusionCharts")}if(!xmlhttp||ielt8||_lib.isFirefox){xmlhttp=_newXmlHttpRequest();wrapper.xmlhttp=xmlhttp}xmlhttp.onreadystatechange=function(){try{if(xmlhttp.readyState===4){if(!xmlhttp.status&&fileProtocol||xmlhttp.status>=200&&xmlhttp.status<300||xmlhttp.status===304||xmlhttp.status===1223||xmlhttp.status===0){successCallback&&successCallback(xmlhttp.responseText,wrapper,callbackArgs,url);counters.success++}else if(errorCallback){errorCallback(new Error(XHREQERROR),wrapper,callbackArgs,url);counters.failure++}counters.idle--;wrapper.open=false}}catch(error){if(errorCallback){errorCallback(error,wrapper,callbackArgs,url)}if(win.FC_DEV_ENVIRONMENT){setTimeout((function(){throw error}),0)}counters.failure++}};try{xmlhttp.open(isPost?POST:GET,url,true);if(xmlhttp.overrideMimeType){xmlhttp.overrideMimeType("text/plain")}if(isPost){if(typeof data==="string"){postData=data}else{postData=[];for(i in data){postData.push(i+"="+(data[i]+"").replace(/\=/g,"%3D").replace(/\&/g,"%26"))}postData=postData.join("&")}}else{postData=null}for(i in headers){xmlhttp.setRequestHeader(i,headers[i])}xmlhttp.send(postData);counters.requests++;counters.idle++;wrapper.open=true}catch(e){(0,_eventApi.raiseError)(global.core,ERRNO,RUN,XHREQERROR,e.message)}return xmlhttp};_proto.get=function get(url,callbackArgs){return this.transact(GET,url,UNDEF,callbackArgs)};_proto.post=function post(url,data,callbackArgs){return this.transact(POST,url,data,callbackArgs)};_proto.abort=function abort(){var instance=this,xmlhttp=instance.xmlhttp;instance.open=false;return xmlhttp&&typeof xmlhttp.abort===FUNCTION&&xmlhttp.readyState&&xmlhttp.readyState!==0&&xmlhttp.abort()};_proto.dispose=function dispose(){var instance=this;instance.open&&instance.abort();delete instance.onError;delete instance.onSuccess;delete instance.xmlhttp;delete instance.open;counters.objects--;return instance=null};return Ajax}();Ajax.headers={"If-Modified-Since":"Sat, 29 Oct 1994 19:43:31 GMT","X-Requested-With":"XMLHttpRequest","X-Requested-By":"FusionCharts",Accept:"text/plain, */*","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"};var _default=exports.default=Ajax;
;