xhrPlugins.js 2.6 KB

12345678
  1. /*
  2. Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
  3. Available via Academic Free License >= 2.1 OR the modified BSD license.
  4. see: http://dojotoolkit.org/license for details
  5. */
  6. if(!dojo._hasResource["dojox.io.xhrPlugins"]){dojo._hasResource["dojox.io.xhrPlugins"]=true;dojo.provide("dojox.io.xhrPlugins");dojo.require("dojo.AdapterRegistry");dojo.require("dojo._base.xhr");(function(){var _1;var _2;function _3(){return _2=dojox.io.xhrPlugins.plainXhr=_2||dojo._defaultXhr||dojo.xhr;};dojox.io.xhrPlugins.register=function(){var _4=_3();if(!_1){_1=new dojo.AdapterRegistry();dojo[dojo._defaultXhr?"_defaultXhr":"xhr"]=function(_5,_6,_7){return _1.match.apply(_1,arguments);};_1.register("xhr",function(_8,_9){if(!_9.url.match(/^\w*:\/\//)){return true;}var _a=window.location.href.match(/^.*?\/\/.*?\//)[0];return _9.url.substring(0,_a.length)==_a;},_4);}return _1.register.apply(_1,arguments);};dojox.io.xhrPlugins.addProxy=function(_b){var _c=_3();dojox.io.xhrPlugins.register("proxy",function(_d,_e){return true;},function(_f,_10,_11){_10.url=_b+encodeURIComponent(_10.url);return _c.call(dojo,_f,_10,_11);});};var _12;dojox.io.xhrPlugins.addCrossSiteXhr=function(url,_13){var _14=_3();if(_12===undefined&&window.XMLHttpRequest){try{var xhr=new XMLHttpRequest();xhr.open("GET","http://testing-cross-domain-capability.com",true);_12=true;dojo.config.noRequestedWithHeaders=true;}catch(e){_12=false;}}dojox.io.xhrPlugins.register("cs-xhr",function(_15,_16){return (_12||(window.XDomainRequest&&_16.sync!==true&&(_15=="GET"||_15=="POST"||_13)))&&(_16.url.substring(0,url.length)==url);},_12?_14:function(){var _17=dojo._xhrObj;dojo._xhrObj=function(){var xdr=new XDomainRequest();xdr.readyState=1;xdr.setRequestHeader=function(){};xdr.getResponseHeader=function(_18){return _18=="Content-Type"?xdr.contentType:null;};function _19(_1a,_1b){return function(){xdr.readyState=_1b;xdr.status=_1a;};};xdr.onload=_19(200,4);xdr.onprogress=_19(200,3);xdr.onerror=_19(404,4);return xdr;};var dfd=(_13?_13(_3()):_3()).apply(dojo,arguments);dojo._xhrObj=_17;return dfd;});};dojox.io.xhrPlugins.fullHttpAdapter=function(_1c,_1d){return function(_1e,_1f,_20){var _21={};var _22={};if(_1e!="GET"){_22["http-method"]=_1e;if(_1f.putData&&_1d){_21["http-content"]=_1f.putData;delete _1f.putData;_20=false;}if(_1f.postData&&_1d){_21["http-content"]=_1f.postData;delete _1f.postData;_20=false;}_1e="POST";}for(var i in _1f.headers){var _23=i.match(/^X-/)?i.substring(2).replace(/-/g,"_").toLowerCase():("http-"+i);_22[_23]=_1f.headers[i];}_1f.query=dojo.objectToQuery(_22);dojo._ioAddQueryToUrl(_1f);_1f.content=dojo.mixin(_1f.content||{},_21);return _1c.call(dojo,_1e,_1f,_20);};};})();}