blob: 315d907d086d0f997b33ffa9637e7c6c54b28908 [file] [log] [blame]
/*
Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
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);
};
};
})();
}