Never been to DZone Snippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

« Newer Snippets
Older Snippets »
Showing 1-5 of 5 total  RSS 

Basic XMLHttprequest

Non-IE version:

xhr = new XMLHttpRequest();                     
xhr.open(
    "GET",                          
    "http://foo.com",       
    true                            
  );
xhr.onreadystatechange=function(){
    if (xhr.readyState==4){
      if (xhr.status==200){
        parseResponse(xhr);
      }else{
        //handle the HTTP error...
      }
    };
  };
xhr.send(null); 


// Basic XMLHttprequest (code from http://www.sitepoint.com/article/take-command-ajax)

function makeHttpRequest(url){

   var http_request = false;

   if (window.XMLHttpRequest) { // Mozilla, Safari,...
   
       http_request = new XMLHttpRequest();
	   
       if (http_request.overrideMimeType){
	   
           http_request.overrideMimeType('text/xml');
		   
       }
	   
   } 
   else if (window.ActiveXObject) { // IE
   
       try{
	   
           http_request = new ActiveXObject("Msxml2.XMLHTTP");
		   
       } 
	   catch(e){
	   
           try{
		   
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
			   
           } 
		   catch (e) {}
       }
	   
   }

   if (!http_request) {
   
       alert('Unfortunatelly you browser doesn\'t support this feature.');
	   
       return false;
	   
   }
   http_request.onreadystatechange = function() {
   
       if (http_request.readyState == 4){
	   
           if (http_request.status == 200){

				alert(http_request.responseText);

           } 
		   else{
		   
               alert('There was a problem with the request.(Code: ' + http_request.status + ')');
			   
           }
		   
       }
	   
   };
   
   http_request.open('GET', url, true);
   http_request.send(null);
}

Test if called from XMLHttpRequest

if($_SERVER["HTTP_X_REQUESTED_WITH"] == 'XMLHttpRequest')
{
  // Called from XMLHttpRequest
}

XMLHttpRequest for IE

XMLHttpRequest for IE
- support onload event handler
- you can modify "XMLHttpRequest.prototype" for debugging, tracing and AOP style programming.

(function(){
if(typeof ActiveXObject == "function" && typeof XMLHttpRequest == "undefined"){
	XMLHttpRequest = function(){
		var self = this;
		var props = "readyState,responseText,responseXML,status,statusText".split(",");
		this.readyState  = 0;
		this.__request__ = new ActiveXObject("Microsoft.XMLHTTP");
		this.__request__.onreadystatechange = function(){
			for(var i=0;i<props.length;i++){
				try{
					self[props[i]] = self.__request__[props[i]]
				}catch(e){
				}
			}
			self.onreadystatechange();
			self.readyState == 4 && self.onload();
		}
		this.onreadystatechange = function(){};
	}
	var methods = "open,abort,send,setRequestHeader,getResponseHeader,getAllResponseHeaders".split(",");
	var make_method = function(name){
		XMLHttpRequest.prototype[name] = function(){
			var params = new Array(arguments.length);
			for(var i=0;i<params.length;i++) params[i] = "_"+i;
			return Function(
				params.join(","),
				["return this.__request__.",name,"(",params.join(","),")"].join("")
			).apply(this,arguments);
		}
	};
	for(var i=0;i<methods.length;i++) make_method(methods[i]);
}
})();


you can trace request.open like this.
(function(){
var open_old = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function(){
    alert("open called!");
    return open_old.apply(this,arguments)
}
})()

XMLHttpRequest do petition

function loadXMLDoc(url) {
		
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
    
        req = new XMLHttpRequest();
        //function_name is the function to process request
        req.onreadystatechange = function_name;
        req.open("GET", url, true);
        req.send(null);
        
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
    
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {

            //function_name is the function to process request        
            req.onreadystatechange = actualizarLista;
            req.open("GET", url, true);
            req.send();
        }
    }
}

XMLHttpRequest process request


if (req.readyState == 4) {

	if (req.status == 200) {
		
            // ...processing statements go here...

            response = req.responseXML;
            
            results = response.getElementsByTagName(name);

	}
}
« Newer Snippets
Older Snippets »
Showing 1-5 of 5 total  RSS