Alien-Web-ExtJS-V3

 view release on metacpan or  search on metacpan

share/examples/shared/code-display.js  view on Meta::CPAN

				if(typeof(DOMParser) == 'undefined'){ 
					xdoc=new ActiveXObject("Microsoft.XMLDOM"); 
					xdoc.async="false";
					xdoc.loadXML(obj.responseText); 

				}else{ 
					try{  //Opera 9 will fail parsing non-XML content, so trap here.
						var domParser = new DOMParser(); 
						xdoc = domParser.parseFromString(obj.responseText, 'application\/xml'); 
					}catch(ex){}
					finally{domParser = null;}

				}
			} catch(ex){ 
				o.status.isError = true; 
				o.status.error = ex;

				}

			obj.responseXML = xdoc;
		    }

		    if(obj.responseXML){

			var parseBad = (obj.responseXML.parseError || 0) != 0 || obj.responseXML.childNodes.length == 0;
			if(!parseBad){
				headerStr = 'Content-Type: ' + (obj.responseXML.contentType || 'text\/xml') + '\n' + headerStr ;
				}			    
		    }		


	    }	

	   var header = headerStr.split('\n');
	   for (var i = 0; i < header.length; i++) {
	        var delimitPos = header[i].indexOf(':');
	    	if (delimitPos != -1) {
			headerObj[header[i].substring(0, delimitPos)] = header[i].substring(delimitPos + 2);
	    	}
	    }

	    obj.tId = o.tId;
	    obj.status = o.status.status;
	    obj.statusText = o.status.statusText;
	    obj.getResponseHeader = headerObj;
	    obj.getAllResponseHeaders = headerStr;
	    obj.stat = o.status

	    if (typeof callbackArg !== undefined) {
		obj.argument = callbackArg;
	    }

	    return obj;
        },
        
	request : function(method, uri, cb, data, options) {
	            
	             options = Ext.apply({async:true,
			   headers:false,
			   userId:null,
			   password:null,
			   xmlData:null }, options||{});
	            	                	
	                var hs = options.headers;
	                if(hs){
	                    for(var h in hs){
	                        if(hs.hasOwnProperty(h)){
	                            this.initHeader(h, hs[h], false);
	                        }
	                    }
	                }
	                if(options.xmlData){
	                    this.initHeader('Content-Type', 'text/xml', false);
	                    method = 'POST';
	                    data = options.xmlData;
	                }
	            	            
		    return this.makeRequest(method, uri, cb, data, options);
		    
        },
        asyncRequest:function(method, uri, callback, postData)
        {
            var o = this.getConnectionObject();

            if (!o || o.status.isError) {
                return null;
            }
            else {
            	o.options = options;
                try{
			o.conn.open(method, uri, true);
		} catch(ex){
			o.status.isError = true;
			o.status.error = ex;
			return Ext.apply(o,this.handleTransactionResponse(o, callback));
			
		}
		
		
		if (this.useDefaultXhrHeader) {
		    if (!this.defaultHeaders['X-Requested-With']) {
			this.initHeader('X-Requested-With', this.defaultXhrHeader, true);
		    }
		}

		if(postData && this.useDefaultHeader){
		    this.initHeader('Content-Type', this.defaultPostHeader);
		}

		 if (this.hasDefaultHeaders || this.hasHeaders) {
		    this.setHeader(o);
		}

		this.handleReadyState(o, callback);
		
		try{ o.conn.send(postData || null);
		} catch(ex){ 
			o.status.isError=true;
			o.status.error = ex;
			return Ext.apply(o,this.handleTransactionResponse(o, callback));
		}
			
					
		return o;
            }
        },
        
        makeRequest:function(method, uri, callback, postData, options)
        {
            var o = this.getConnectionObject();
            	     
            if (!o || o.status.isError) {
                return null;
            }
            else {
            	o.options = options;	
                try{
			o.conn.open(method, uri, options.async, options.userId, options.password);
		} catch(ex){
			o.status.isError = true;
			o.status.error = ex;
			var r=this.handleTransactionResponse(o, callback);
			return Ext.apply(o,r);
		}

		if (this.useDefaultXhrHeader) {
		    if (!this.defaultHeaders['X-Requested-With']) {
			this.initHeader('X-Requested-With', this.defaultXhrHeader, true);
		    }
		}

		if(postData && this.useDefaultHeader){
		    this.initHeader('Content-Type', this.defaultPostHeader);
		}

		 if (this.hasDefaultHeaders || this.hasHeaders) {
		    this.setHeader(o);
		}

		if(o.options.async){ //Timers won't work here as it's a blocking call
			this.handleReadyState(o, callback);
		}
		
		try{ o.conn.send(postData || null);
		} catch(ex){ 
			//Ext.apply(o,this.handleTransactionResponse(o, callback));
		}
				
		return options.async?o:Ext.apply(o,this.handleTransactionResponse(o, callback));
            }
   }});
	
Ext.lib.Ajax.forceActiveX = (document.location.protocol == 'file:');/* or other true/false mechanism */



( run in 0.524 second using v1.01-cache-2.11-cpan-5623c5533a1 )