Google Chrome - запрещен доступ к файлам из файлов для Chrome Beta 8 - PullRequest
27 голосов
/ 24 ноября 2010

Я занимаюсь разработкой приложения AJAX с использованием технологий jQuery и Microsoft Seadragon.
Мне нужен доступ к функции html5 canvas toDataURL.

В Google Chrome к этой функции применяется то же правило происхожденияэто означает, что страница, запущенная локально (с file:/// в URL), не смогла удовлетворить то же правило происхождения, и возникло исключение.

В Chrome 7 запуск приложения с параметром --allow-file-access-from-files позволяетдля вызова canvas.toDataURL() из локальных файлов.

Однако, похоже, что запуск Chrome Beta 8 с той же опцией (--allow-file-access-from-files) не разрешает вызов canvas.toDataURL() в локальном файле.

Отказался ли Chrome от опции --allow-file-access-from-files или он был только что отключен, поскольку это бета-версия, а не полная версия?

Спасибо!

Ответы [ 5 ]

46 голосов
/ 25 ноября 2010

Рассмотрение проблем для этого показывает, что вся вещь --allow-file-access-from-files была спешна.

  1. "Firefox делает это .."
  2. "Какмы можем это сделать? "
  3. проходит некоторое время
  4. " Вот патчи "
  5. " Проходит! На стволе удивляюсь, что произойдет в следующемdev release "
  6. " Аааа, он сломан "" Используйте параметр командной строки "" ОК "
  7. " Мы отправили! "
  8. " WTF, ребята? Вы разбили все мои вещи! Почему вы не сказали нам раньше? "
  9. тишина

к вашей проблеме
Действительно кажется, чтоэто что-то особенное для беты, я использую Chrome 8.0.552.5 dev здесь, и --allow-file-access-from-files работает как ожидалось, я также проверил это с Chromium 9.0.592.0 (66889), если это также работает как ожидалось.

Я подозреваю, что тамбыли некоторые изменения в ветке dev.К сожалению, найти что-то в системе отслеживания проблем Chromium практически невозможно.

22 голосов
/ 03 марта 2011

Вы закрывали все экземпляры chrome перед открытием с аргументом командной строки? Вы должны сделать это, чтобы этот параметр работал.

10 голосов
/ 29 апреля 2011

Суммируем все ответы на данный момент.

Перед запуском chrome убедитесь, что не запущены процессы chrome.

Windows

-allow-file-access-from-files

(с одной чертой)

Linux

--allow-file-access-from-files

(с двумя чертами)

1 голос
/ 10 мая 2011

Я нашел способ обойти проблему, используя подход JavaScript / Flash.Если flash скомпилирован в изолированной программной среде безопасности Local Only, он имеет полный доступ к локальным файлам.Используя ExternalInterface, JavaScript может запросить приложение Flash для загрузки файла, а Flash может передать результат обратно в JavaScript.

Моя реализация находится здесь: https://code.google.com/p/flash-loader/

0 голосов
/ 08 июня 2011

Уловка, которая меня разбудила, заключается в том, что вы должны указать абсолютный путь к файлу, а не просто имя файла в вашем HTML-коде.например, file: // ... вместо прямого имени, даже если вы обращаетесь к файлу в том же каталоге.Это будет работать!

...