Я пытаюсь разработать приложение, которое будет использовать getImageData в javascript в Firefox 3, но я получаю " NS_ERROR_DOM_SECURITY_ERR
" на вызове getImageData. Javascript и изображение в настоящее время обслуживаются жестким диском, что, по-видимому, является нарушением безопасности? Когда он будет запущен, они оба будут обслуживаться из одного домена, так что это не будет проблемой, но как я могу развиваться в это время?
Вы можете попробовать установить локальный веб-сервер, такой как Apache (в Unix) или IIS (в Windows). Это в конечном итоге даст вам лучший локальный тестовый стенд для веб-приложений, потому что, как вы выяснили, браузеры обрабатывают файлы из файловой системы совершенно иначе, чем контент, обслуживаемый веб-сервером.
Вы можете сказать браузеру, чтобы он глючил. Решение лучше или хуже в зависимости от ваших обстоятельств. Я обертываю это в попытке, чтобы диалог безопасности не отображался, если это не проблема.
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);
}
В Firefox введите about: config в адресную строку. Затем используйте поле поиска для поиска «security.fileuri.strict_origin_policy». Дважды щелкните по нему, чтобы установить его на «ложь».
У меня была такая же проблема при использовании 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
.