'XMLHttpRequest upload.addEventListener "progress" doesn't work

I'm trying to show a progress bar when I'm uploading a file. but when I use XMLHttpRequest upload progress eventListener it doesn't work and return these errors in the console => "Access to XMLHttpRequest at 'server address' from origin 'http://127.0.0.1:5501' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource." And "POST http://serveraddress:/ net::ERR_FAILED". I have tried some ways but I have no idea why this happens. I will thank you if you tell me what can I do... Here is my javascript code:

var oOutput = document.getElementsByClassName("file-result")[0],
  oData = new FormData(form);

oData.append("action", "6");
oData.append("adminID", checkCookie().toString());

var oReq = new XMLHttpRequest();
oReq.open("POST", "serveraddress", true);

oReq.upload.addEventListener("progress", function(event) {
  let percent = (event.loaded / event.total * 100);
  document.getElementsByClassName("insider-bar")[0].style.width = percent + '%';
  document.getElementById('progress-percent').innerHTML = percent + '%';
  console.log(event.total);
});

oReq.onload = function(oEvent) {
  if (oReq.status == 200) {
    document.getElementsByClassName('progressbar-wrapper')[0].style.display = "none";

    if (fileCounter == 0) {
      coverLink = oReq.responseText;
    } else {

      if (oReq.responseText.indexOf(".mp4") == -1)
        imageFilesLink.push(oReq.responseText);
      else
        videoFilesLink.push(oReq.responseText);
      let fileDiv = document.createElement("div");
      fileDiv.className += "files ".concat(oReq.responseText);
      fileDiv.innerHTML = '<i class=\"fa fa-link\"></i>';
      fileDiv.setAttribute("onclick", 'setClipboard("server-address' + oReq.responseText + '")');

      fileDiv.setAttribute("ondblclick", 'showPictures("serveraddress' + oReq.responseText + '")');
      document.getElementById("file-result").appendChild(fileDiv);
    }
    fileCounter++;
  } else {
    document.getElementsByClassName('progressbar-wrapper')[0].style.display = "none";
  }
};
oReq.send(oData);
ev.preventDefault();
<div class="progressbar-wrapper">
  <div class="upload-progress">
    <div class="insider-bar"></div>
  </div>
  <p id="progress-percent">0%</p>
</div>


Solution 1:[1]

You can find another way in this address:

https://attacomsian.com/blog/xhr-monitor-progress

xhr.onprogress = (event) => { console.log(Downloaded ${event.loaded} of ${event.total} bytes); }

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1