Repository: wicket Updated Branches: refs/heads/master 8a4e1b3c2 -> c7f2b81e8
WICKET-6286 use XMLHttpRequest for blob download Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/c7f2b81e Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/c7f2b81e Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/c7f2b81e Branch: refs/heads/master Commit: c7f2b81e8bfbedc1cc37c66b256814a86eba69eb Parents: 8a4e1b3 Author: Sven Meier <[email protected]> Authored: Wed Mar 29 15:45:41 2017 +0200 Committer: Sven Meier <[email protected]> Committed: Wed Mar 29 15:52:07 2017 +0200 ---------------------------------------------------------------------- .../extensions/ajax/wicket-ajaxdownload.js | 23 ++++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/c7f2b81e/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js ---------------------------------------------------------------------- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js index b13bbfa..64839d9 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/wicket-ajaxdownload.js @@ -97,10 +97,13 @@ } }); } else { - jQuery.ajax({ - type: 'get', - url: settings.downloadUrl, - success: function (response, status, xhr) { + // jquery does not support binary download + var xhr = new XMLHttpRequest(); + + xhr.open("GET", settings.downloadUrl); + xhr.responseType = "blob"; + xhr.onload = function() { + if (this.status == 200) { var filename = ""; var disposition = xhr.getResponseHeader("Content-Disposition"); if (disposition && disposition.indexOf("attachment") !== -1) { @@ -111,7 +114,7 @@ } var type = xhr.getResponseHeader("Content-Type"); - var blob = new Blob([response], {type: type}); + var blob = new Blob([xhr.response], {type: type}); var blobUrl = (window.URL || window.webkitURL).createObjectURL(blob); @@ -129,12 +132,14 @@ }, 100); notifyServer("success"); - }, - - error: function (response, status, xhr) { + } else { notifyServer("failed"); } - }); + }; + xhr.onerror = function() { + notifyServer("failed"); + }; + xhr.send(); } } };
