загрузка картинок по кнопке

Есть страница с превью картинок, при нажатии на кнопку эти картинки грузятся на комп, это работает если картинки и страница находятся в одном домене, но если домены различны то скрипт не срабатывает

     `y.onclick = function(){
      links.forEach(function(item, i, links) {
        var stringOne = item.href;
        var FinSumbol = stringOne.lastIndexOf("/");
        var FileNames = stringOne.substring(FinSumbol+1);
        var VeryFile = FileNames.lastIndexOf(".");
        if (VeryFile != -1){
        var NewWindow = window.open(item.href);
          saveAs(item.href, FileNames);
      }
      });  
    }


    function saveAs (blob, name, opts) {
        var URL = _global.URL || _global.webkitURL
        var a = document.createElement('a')
        name = name || blob.name || 'download'
    
        a.download = name
        a.rel = 'noopener' // tabnabbing
    
        if (typeof blob === 'string') {
          // Support regular links
          a.href = blob
          if (a.origin !== location.origin) {
            corsEnabled(a.href)
              ? download(blob, name, opts)
              : click(a, a.target = '_blank')
          } else {
            click(a)
          }
        } else {
          // Support blobs
          a.href = URL.createObjectURL(blob)
          setTimeout(function () { URL.revokeObjectURL(a.href) }, 4E4) // 40s
          setTimeout(function () { click(a) }, 0)
        }
      }


    function corsEnabled (url) {
      var xhr = new XMLHttpRequest()
      // use sync to avoid popup blocker
      xhr.open('HEAD', url, false)
      try {
        xhr.send()
      } catch (e) {}
      return xhr.status >= 200 && xhr.status <= 299
    }


    function click (node) {
      try {
         node.dispatchEvent(new MouseEvent('click'))
      } catch (e) {
        var evt = document.createEvent('MouseEvents')
        evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80,
                              20, false, false, false, false, 0, null)
        node.dispatchEvent(evt)
      }
    }`

В функции SaveAs в строке if (a.origin !== location.origin) { сравнивает домен, и если он отличается то управление переходит в corsEnabled после запроса 'e' = undefined а xhr.status = 0, далее управление переходит в click и на строке 'node.dispatchEvent(new MouseEvent('click'))' выходит из функции. Помогите понять где копать, что не так?


Ответы (0 шт):