Эта проблема может быть связана с этим вопросом , но платформа отличается, поэтому я не уверен.Я написал JavaScript-код в angularJS для загрузки изображения в s3. Кажется, он хорошо работает в большинстве современных браузеров, но не работает на Microsoft edge и IE 11, насколько я тестировал.
Код вызывает PUT, чтобы обновить существующий s3 URI с файлом изображения
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) {})
Я вижу 403
моего запроса PUT на вкладке сети. Я не являюсьЯ уверен, что я могу создать JSfiddle для воспроизведения этой проблемы, но по какой-то причине
Chrome или Firefox обрабатывают URL-адрес, и я вижу на вкладке сети такие параметры, как
X-Amz-SignedHeaders: content-type;host
Нов Microsoft Edge и IE11 я вижу host
в качестве отдельного параметра
X-Amz-SignedHeaders: content-type
host:
Я попытался изменить код для отправки запроса на xmlhttprequest
, чтобы посмотреть, изменится ли что-нибудь с тем, как параметры отправляются, итакже дает мне тот же ответ.
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);
Я получаю тот же ответ 403, и я вижу ту же проблему с отправленными параметрами.Любое руководство будет высоко ценится.