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

Line 117: Line 117:
 
   });
 
   });
  
$.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:17, 14 October 2016