summaryrefslogtreecommitdiff
path: root/lib/dojo/request/handlers.js.uncompressed.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dojo/request/handlers.js.uncompressed.js')
-rw-r--r--lib/dojo/request/handlers.js.uncompressed.js62
1 files changed, 62 insertions, 0 deletions
diff --git a/lib/dojo/request/handlers.js.uncompressed.js b/lib/dojo/request/handlers.js.uncompressed.js
new file mode 100644
index 000000000..7c0ed8302
--- /dev/null
+++ b/lib/dojo/request/handlers.js.uncompressed.js
@@ -0,0 +1,62 @@
+define("dojo/request/handlers", [
+ '../json',
+ '../_base/kernel',
+ '../_base/array',
+ '../has'
+], function(JSON, kernel, array, has){
+ has.add('activex', typeof ActiveXObject !== 'undefined');
+
+ var handleXML;
+ if(has('activex')){
+ // GUIDs obtained from http://msdn.microsoft.com/en-us/library/ms757837(VS.85).aspx
+ var dp = [
+ 'Msxml2.DOMDocument.6.0',
+ 'Msxml2.DOMDocument.4.0',
+ 'MSXML2.DOMDocument.3.0',
+ 'MSXML.DOMDocument' // 2.0
+ ];
+
+ handleXML = function(response){
+ var result = response.data;
+
+ if(!result || !result.documentElement){
+ var text = response.text;
+ array.some(dp, function(p){
+ try{
+ var dom = new ActiveXObject(p);
+ dom.async = false;
+ dom.loadXML(text);
+ result = dom;
+ }catch(e){ return false; }
+ return true;
+ });
+ }
+
+ return result;
+ };
+ }
+
+ var handlers = {
+ 'javascript': function(response){
+ return kernel.eval(response.text || '');
+ },
+ 'json': function(response){
+ return JSON.parse(response.text || null);
+ },
+ 'xml': handleXML
+ };
+
+ function handle(response){
+ var handler = handlers[response.options.handleAs];
+
+ response.data = handler ? handler(response) : (response.data || response.text);
+
+ return response;
+ }
+
+ handle.register = function(name, handler){
+ handlers[name] = handler;
+ };
+
+ return handle;
+});