Javascript XHR не загружается с опциями - PullRequest
1 голос
/ 22 апреля 2020

У меня есть форма загрузки файла в Amazon S3 напрямую из браузера, загрузка работает нормально, но я не могу отслеживать ход загрузки - она ​​мгновенно показывает 100%.

Причина, по-моему потому что он публикует во внешнем домене, Amazon, и сообщает 100% о возврате начального запроса OPTIONS, который отправлен. Можно ли как-нибудь проигнорировать этот ответ и отследить следующее событие 'progress'?

    var xhr = new XMLHttpRequest();
    xhr.open("POST", s3Data.url);
    var postData = new FormData();
    for(key in s3Data.fields){
      postData.append(key, s3Data.fields[key]);
    }
    postData.append('file', file);



    xhr.onreadystatechange = function() {
      if(xhr.readyState === 4){
        if(xhr.status === 200 || xhr.status === 204){
          // complete
        }
        else{
          alert("Could not upload file.");
        }
     }
    };

    xhr.upload.addEventListener("progress", function(evt){
         if (evt.lengthComputable) {
           var percentComplete = evt.loaded / evt.total;
           alert("Upload " + Math.round(percentComplete*100) + "% complete.");
         }
       }, false);

    xhr.send(postData);

Событие progress просто срабатывает один раз и выдает 100% предупреждений, что, по-видимому, происходит в ответ на URL-адрес S3, следующий запрос в браузере - это POST, который представляет собой файл загрузки

Любая помощь будет принята с благодарностью, я не могу найти подобные вопросы, но извиняюсь, если пропустил очевидное

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...