Pedido S3 PUT do Microsoft Edge e o IE falha devido ao ponto e vírgula no parâmetro

Este problema pode estar relacionado aessa questã, mas a plataforma é diferente, então não tenho certeza. Eu tinha escrito o código JavaScript no angularJS para fazer upload de uma imagem para o s3, ele parece funcionar bem na maioria dos navegadores modernos, mas falha no Microsoft Edge e no IE 11 até agor

O código faz uma chamada PUT para atualizar um URI s3 existente com um arquivo de imagem

let s3URLforImageUpload = encodeURI(response.payload.data) // already existing URI;
$http.put(s3URLforImageUpload, file, {headers: {'Content-Type': file.type}}) // file from ng-select directive
.success(function(response) {})
.catch(function(error) {})

Eu posso ver um403 na minha solicitação PUT na guia rede.Não sei como posso criar um JSfiddle para reproduzir esse problema, mas o que acontece é por algum motivo

Chrome ou Firefox tratam o URL e posso ver na guia rede parâmetros como

X-Amz-SignedHeaders: content-type;host

Mas no Microsoft edge e IE11, vejohost como um parâmetro separado

X-Amz-SignedHeaders: content-type
host:

Tentei alterar o código para enviar a solicitação paraxmlhttprequest para ver se alguma coisa muda com a forma como os parâmetros são enviados e também me dá a mesma respost

let s3URLforImageUpload = encodeURI(response.payload.data);
var req = new XMLHttpRequest();
req.onload = function(response) {
  console.log("RESPONSE 2", response);
}
req.open("PUT", s3URLforImageUpload);
req.setRequestHeader("Content-type", file.type);
req.send(file);

Recebo a mesma resposta 403 e vejo o mesmo problema com os parâmetros enviados. Qualquer orientação será muito apreciad

questionAnswers(0)

yourAnswerToTheQuestion