Revert "Export"
[platform/framework/web/web-ui-fw.git] / libs / js / jquery-geo-1.0a4 / docs / examples / js / iecors.js
1 $.ajaxTransport( function( options, originalOptions, jqXHR ) {
2   var xdr;
3
4   return {
5     send: function( _, completeCallback ) {
6       xdr = new XDomainRequest();
7
8       xdr.onload = function() {
9         var responses = {
10           text: xdr.responseText
11         };
12
13         // force status code to 200, XDomainRequest rejects all other successful status codes
14         if (xdr.contentType.match(/\/xml/)){
15           // there is no responseXML in XDomainRequest, so we have to create it manually
16           var dom = new ActiveXObject('Microsoft.XMLDOM');
17           dom.async = false;
18           dom.loadXML(xdr.responseText);
19           responses.xml = dom;
20
21           if($(dom).children('error').length != 0) {
22             var $error = $(dom).find('error');
23             completeCallback(parseInt($error.attr('response_code')), $error.attr('message_key'), responses);
24           } else {
25             completeCallback(200, 'success', responses);
26           }
27         } else if (xdr.contentType.match(/\/json/)) {
28           options.dataTypes.push("json");
29           completeCallback(200, 'success', responses);
30         } else {
31           completeCallback(200, 'success', responses); 
32           // see bug https://connect.microsoft.com/IE/feedback/ViewFeedback.aspx?FeedbackID=334804
33         }
34       };
35
36       xdr.onprogress = function() { };
37
38       xdr.onerror = xdr.ontimeout = function() {
39         var responses = {
40           text: xdr.responseText
41         };
42         completeCallback(400, 'failed', responses);
43       };
44
45       xdr.open(options.type, options.url);
46       xdr.send(options.data);
47     },
48     abort: function() {
49       if(xdr) {
50         xdr.abort();
51       }
52     }
53   };
54 });
55