From 66bd98be22d50cc09bf14f9aaa0102771a3b990d Mon Sep 17 00:00:00 2001 From: John Resig Date: Fri, 16 Jun 2006 02:43:04 +0000 Subject: [PATCH] Added onSuccess and onError callbacks for the $.xml() function. --- ajax/ajax.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/ajax/ajax.js b/ajax/ajax.js index 21a993498..8e0f81f57 100644 --- a/ajax/ajax.js +++ b/ajax/ajax.js @@ -13,6 +13,15 @@ if ( typeof XMLHttpRequest == 'undefined' && typeof window.ActiveXObject == 'fun $.xmlActive=0; $.xml = function( type, url, data, ret ) { + if ( !url ) { + ret = type.onComplete; + var onSuccess = type.onSuccess; + var onError = type.onError; + data = type.data; + url = type.url; + type = type.type; + } + var xml = new XMLHttpRequest(); if ( xml ) { @@ -24,7 +33,8 @@ $.xml = function( type, url, data, ret ) { // Set header so calling script knows that it's an XMLHttpRequest xml.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); - /* Force "Connection: close" for Mozilla browsers to work around + /* Borrowed from Prototype: + * Force "Connection: close" for Mozilla browsers to work around * a bug where XMLHttpReqeuest sends an incorrect Content-length * header. See Mozilla Bugzilla #246651. */ @@ -53,6 +63,13 @@ $.xml = function( type, url, data, ret ) { $.xmlActive = 0 } + if ( xml.status && xml.status >= 200 && xml.status < 300 ) { + if ( onSuccess ) + onSuccess( xml ); + } else if ( onError ) { + onError( xml ); + } + // Process result if ( ret ) ret(xml);