Ошибки возникающие, при работе с Ajax
uncaught exception: permission denied to call method XMLHttpRequest.open
Эта ошибка возникает при обращении к домену, отличному от текущего.
Пути решения
- Отказаться от использования сторонних рессурсов и перенести все необходимое на свой сервер.
решение для Internet Explorer:
Описание дано для русскоязычной версии IE7 + WinXP SP2 Rus. В других версиях/языках нужно исправить аналогичные настройки.
Свойства обозревателя > закладка "Безопасность" > зона "Надежные узлы" > кнопка "Узлы". Снять галочку "Для всех узлов этой зоны требуется проверка серверов (https:)", добавить узел seochecker. Net и нажать кнопку "Закрыть". Выбрать "Уровень безопасности для этой зоны" нажав на кнопку "Другой..." Найти параметр "Разное" > "Доступ к источникам данных за пределами домена", выбрать "Предлагать" (при открытии сайта htmlweb.ru вам нужно будет отвечать "да" на запрос безопасности) или "Включить" (дополнительных запросов не будет) и сохранить изменения.
Перейти на главную страницу и продолжить работу.
решение для Mozzila FireFox:
user_pref("capability.principal.codebase.htmlweb.granted", "UniversalBrowserRead");
user_pref("capability.principal.codebase.htmlweb. ID", " HTTP://htmlweb.ru");
user_pref("capability.principal.codebase.htmlweb.subjectName", "htmlweb");
user_pref("capability.principal.codebase.htmlwebwww.granted", "UniversalBrowserRead");
user_pref("capability.principal.codebase.htmlwebwww.id", "http://htmlweb.ru");
user_pref("capability.principal.codebase.htmlwebwww.subjectName", "htmlweb");
user_pref("signed.applets.codebase_principal_support", true);
Вместо htmlweb.ru подставьте свой сайт. Поместите его в директорию вашего профиля Firefox. Обычно путь к этой директории имеет вид:
C++:\Documents and Settings\логин_пользователя\
Application Data\ Mozilla\Firefox\Profiles\
случайные_символы.default\
Файл не переименовывать, оставить название user.js. Перезапустить Firefox.
Данная операция добавит сайт указанный вами домен в "доверенные", которым разрешено получать данные с источников за пределами домена.
Кроме этого, выключите Firebag для этого сайта!
Для проверки из JavaScript доступности получения информации из-за пределов домена я использую следующий код:
if(!window.ActiveXObject)
try {
if (netscape.security.PrivilegeManager.enablePrivilege) {
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
}
} catch (e) {alert('Настройка безопасности браузера не позволяет обращаться к другим сайтам!n'+e); return false;}
Обработка ошибки метода open объекта ajax:
try {
ajaxObj.open ('GET', URL); }
catch (e) {if(window.ActiveXObject)alert('Разрешите получать информацию с других сайтов!n'+e);
else alert('Выключите Firebag для этого сайта,nиначе Вы не сможете увидеть весь анализ на одной странице!n'+e);
}
|