diff --git a/www/FileTransfer.js b/www/FileTransfer.js index e8e89be..66a1c4b 100644 --- a/www/FileTransfer.js +++ b/www/FileTransfer.js @@ -42,7 +42,7 @@ function getBasicAuthHeader(urlString) { var credentials = null; var protocol = url.protocol + "//"; - var origin = protocol + url.host; + var origin = protocol + url.host.replace(":" + url.port, ""); // Windows 8 (IE10) append :80 or :443 to url.host // check whether there are the username:password credentials in the url if (url.href.indexOf(origin) !== 0) { // credentials found diff --git a/www/windows8/FileTransferProxy.js b/www/windows8/FileTransferProxy.js index e3a28d6..4ca88fc 100644 --- a/www/windows8/FileTransferProxy.js +++ b/www/windows8/FileTransferProxy.js @@ -29,6 +29,7 @@ module.exports = { upload:function(successCallback, error, options) { var filePath = options[0]; var server = options[1]; + var headers = options[8] || {}; var win = function (fileUploadResult) { @@ -49,7 +50,7 @@ module.exports = { var blob = MSApp.createBlobFromRandomAccessStream(storageFile.contentType, stream); var formData = new FormData(); formData.append("source\";filename=\"" + storageFile.name + "\"", blob); - WinJS.xhr({ type: "POST", url: server, data: formData }).then(function (response) { + WinJS.xhr({ type: "POST", url: server, data: formData, headers: headers }).then(function (response) { var code = response.status; storageFile.getBasicPropertiesAsync().done(function (basicProperties) { @@ -73,6 +74,7 @@ module.exports = { download:function(win, error, options) { var source = options[0]; var target = options[1]; + var headers = options[4] || {}; if (target === null || typeof target === undefined) { @@ -96,6 +98,13 @@ module.exports = { storageFolder.createFileAsync(fileName, Windows.Storage.CreationCollisionOption.generateUniqueName).then(function (storageFile) { var uri = Windows.Foundation.Uri(source); var downloader = new Windows.Networking.BackgroundTransfer.BackgroundDownloader(); + + if (headers) { + for (var header in headers) { + downloader.setRequestHeader(header, headers[header]); + } + } + download = downloader.createDownload(uri, storageFile); download.startAsync().then(function () { win(new FileEntry(storageFile.name, storageFile.path));