Я пытаюсь разработать приложение, которое будет использовать getImageData в javascript в Firefox 3, но я получаю "NS_ERROR_DOM_SECURITY_ERR
" при вызове getImageData. Javascript и изображение в настоящее время обслуживаются с жесткого диска, что, по-видимому, является нарушением безопасности? Когда это будет запущено, они оба будут обслуживаться из одного и того же домена, так что это не будет проблемой, но как я могу развиваться в это время?
getImageData в Firefox 3, вызывающий NS_ERROR_DOM_SECURITY_ERR
Ответы (4)
Вы можете попробовать установить локальный веб-сервер, такой как 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». Дважды щелкните это, чтобы установить «false».
У меня была такая же проблема при использовании 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
.