Почему у меня появляется ошибка «Не разрешено загружать локальный ресурс» в Chrome, когда я использую blob для загрузки ресурса из ArrayBuffer?

Мне нужно загрузить изображение из ArrayBuffer. Я видел некоторые статьи, в которых говорится, что использование Blob - самый эффективный способ сделать это.

Это код, который я написал для преобразования буфера массива в URL-адрес blob.

        const blob = new Blob([new Uint8Array(arrayBuffer, offset,length)], {
            type: mimeType
        });
        url = window.URL.createObjectURL(blob);

Буфер массива - это экземпляр буфера массива, который создается путем нарезки другого буфера массива, полученного с помощью XMLHttpRequest.

Затем я попытался получить изображение из URL-адреса сгенерированного объекта, подобного этому.

    const imgTag = new Image();
    imgTag.onload = () => {
      resolve(imgTag);
    };
    imgTag.onerror = (e) => {
      reject(e);
    };
    imgTag.src = url;
  });

Но у меня ошибка Not allowed to load local resource. Созданный URL-адрес объекта похож на blob://https://localhost:9443/056abc73-c2d8-47dd-b2c7-24e1966a5221.

Я мог получить доступ к сгенерированному URL-адресу объекта в firefox. И firefox не выдаст ошибку, как хром.

Что-то не так?


person kyasbal    schedule 14.01.2017    source источник
comment
fetched by XMLHttpRequest - перекрестный домен или тот же домен?   -  person Jaromanda X    schedule 14.01.2017
comment
То же происхождение. Я получил его с localhost: 9443 / xxx / xxx.bin.   -  person kyasbal    schedule 14.01.2017
comment
похоже на ошибку в хроме   -  person Jaromanda X    schedule 14.01.2017
comment
См. Это stackoverflow.com/questions/21403347/   -  person Varun Sharma    schedule 14.01.2017


Ответы (1)


Это связано с тем, что Chrome имеет некоторые причины безопасности, запрещающие доступ из файловой системы.

откройте страницу, на которой возникает ошибка, и проверьте URL-адрес.

Если это что-то вроде:

файл: /// C: /Users/desktopname/projectfolder//yourfile.html

вы видите, что первое слово URL - это файл, что означает, что вы обращаетесь к файлу из файловой системы, а Chrome / oprea блокирует ваш запрос.

попробуйте запустить свой проект на http://localhost/portnumber (по этой ссылке вы можете запустить свой проект в рамках на ваш выбор. в моем случае я работаю в Visual Studio)

** Я обнаружил эту проблему в браузерах Chrome и Opera. это работает на mozila firefox и microsoft Edge.

person Sagar Thakkar    schedule 03.01.2018
comment
На самом деле я не использую на этом сайте доступ к какой-либо файловой схеме. Я знал об этом ограничении и не отправлял никаких запросов ajax, которые можно предотвратить с помощью локальной политики безопасности Chrome. - person kyasbal; 04.01.2018
comment
Не могли бы вы приложить снимок экрана с веб-страницей для дальнейшего изучения (пожалуйста, включите URL-адрес в снимок экрана) - person Sagar Thakkar; 05.01.2018