getImageData в Firefox 3 вызывает NS_ERROR_DOM_SECURITY_ERR - PullRequest
2 голосов
/ 11 декабря 2008

Я пытаюсь разработать приложение, которое будет использовать getImageData в javascript в Firefox 3, но я получаю «NS_ERROR_DOM_SECURITY_ERR» при вызове getImageData. Javascript и изображение в настоящее время обслуживаются жестким диском, что, по-видимому, является нарушением безопасности? Когда он будет запущен, они оба будут обслуживаться из одного домена, так что это не будет проблемой, но как я могу развиваться в это время?

Ответы [ 4 ]

5 голосов
/ 14 декабря 2008

Вы можете сказать браузеру, чтобы он отключался. Решение лучше или хуже в зависимости от ваших обстоятельств. Я обертываю это в попытке, чтобы диалог безопасности не отображался, если это не проблема.

  var data;
  try {
    try {
      data = context.getImageData(sx, sy, sw, sh).data;
    } catch (e) {
      netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
      data = context.getImageData(sx, sy, sw, sh).data;
    }
  } catch (e) {
    throw new Error("unable to access image data: " + e);
  }
3 голосов
/ 11 декабря 2008

Вы можете попробовать установить локальный веб-сервер, такой как Apache (в Unix) или IIS (в Windows). Это в конечном итоге даст вам лучший локальный тестовый стенд для веб-приложений, потому что, как вы выяснили, браузеры обрабатывают файлы из файловой системы совершенно иначе, чем контент, обслуживаемый веб-сервером.

2 голосов
/ 06 августа 2010

В Firefox введите «about: config» в адресную строку. Затем используйте поле поиска для поиска «security.fileuri.strict_origin_policy». Дважды щелкните по нему, чтобы установить его на «ложь».

1 голос
/ 22 апреля 2012

У меня была такая же проблема при использовании getImageData в FireFox 11.0 ... Все мои файлы и коды были на моем сервере, и на моем локальном компьютере ничего не было.

Я подумал, что это может помочь кому-то, у кого такая же проблема, как и у меня.

Похоже, что Firefox обрабатывает

http://mySite.com

как другой домен от

http://www.mySite.com

Поэтому я использовал .htaccess, чтобы добавить www., когда пользователи не вводят его в

RewriteEngine On
RewriteCond %{HTTP_HOST} ^mySite\.com$ [NC]
RewriteRule ^(.*)$ http://www.mySite.com/$1 [L,R=301]

Теперь он работает нормально и больше не показывает NS_ERROR_DOM_SECURITY_ERR.

...