Difference between revisions of "Team:SUSTech Shenzhen/themeJs"

Line 116: Line 116:
 
     }
 
     }
 
   });
 
   });
 +
 +
$.ajaxTransport("+binary", function(options, originalOptions, jqXHR){
 +
    // check for conditions and support for blob / arraybuffer response type
 +
    if (window.FormData && ((options.dataType && (options.dataType == 'binary')) || (options.data && ((window.ArrayBuffer && options.data instanceof ArrayBuffer) || (window.Blob && options.data instanceof Blob)))))
 +
    {
 +
        return {
 +
            // create new XMLHttpRequest
 +
            send: function(headers, callback){
 +
// setup all variables
 +
                var xhr = new XMLHttpRequest(),
 +
url = options.url,
 +
type = options.type,
 +
async = options.async || true,
 +
// blob or arraybuffer. Default is blob
 +
dataType = options.responseType || "blob",
 +
data = options.data || null,
 +
username = options.username || null,
 +
password = options.password || null;
 +
 +
                xhr.addEventListener('load', function(){
 +
var data = {};
 +
data[options.dataType] = xhr.response;
 +
// make callback and send data
 +
callback(xhr.status, xhr.statusText, data, xhr.getAllResponseHeaders());
 +
                });
 +
 +
                xhr.open(type, url, async, username, password);
 +
 +
// setup custom headers
 +
for (var i in headers ) {
 +
xhr.setRequestHeader(i, headers[i] );
 +
}
 +
 +
                xhr.responseType = dataType;
 +
                xhr.send(data);
 +
            },
 +
            abort: function(){
 +
                jqXHR.abort();
 +
            }
 +
        };
 +
    }
 +
});
 
   </script>
 
   </script>
  
 
</footer>
 
</footer>
 
</html>
 
</html>

Revision as of 15:13, 14 October 2016