Как вы обошли эту проблему с использованием скриптового скрипта Ajax на FireFox 3?
Доступ к ограниченному идентификатору URI: 1012
Ответ 1
Если вы используете jQuery, у него есть функция обратного вызова, чтобы преодолеть это:
http://docs.jquery.com/Ajax/jQuery.ajax#options
Как и в jQuery 1.2, вы можете загрузить JSON данные, расположенные в другом домене, если вы укажите обратный вызов JSONP, который может быть сделано так: "myurl? callback =?". jQuery автоматически заменяет? с правильным именем метода для вызова, вызывая указанный обратный вызов. Или, если вы установите для параметра dataType значение "jsonp" обратный вызов будет автоматически добавлен к вашему запросу Ajax.
В качестве альтернативы вы можете сделать свой запрос ajax серверной стороне script, которая выполняет междоменный вызов для вас, а затем передает данные обратно на ваш script
Ответ 2
Чтобы обновить ответ (я думаю, в основном для моей выгоды, когда я буду искать этот ответ позже), если вы загружаете XML или что-то еще, вы всегда можете спросить пользователя, разрешит ли он нам читать с другого сайта с этим кодом:
try {
if (netscape.security.PrivilegeManager.enablePrivilege)
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
} catch (e) {
alert("Sorry, browser security settings won't let this program run.");
return;
}
(из книги веб-служб RESTful) Но это работает только в firefox, когда файл html загружается из локального файла. Итак, не так уж полезно.
Ответ 3
Еще одно решение: если все, что вам нужно, это заголовки, вы можете указать "HEAD" в качестве метода, и это не вызовет проблему безопасности. Например, если вы просто хотите знать, существует ли веб-страница.
var client = new XMLHttpRequest();
client.open("HEAD", my_url, false);
client.send(null);
if(client.readyState != 4 || client.status != 200) //if we failed
alert("can't open web page");
Ответ 4
Некоторые подробности будут приятными: какую библиотеку AJAX вы используете, что бы вы хотели достичь, как вы это делаете.
Например, это может быть кросс-доменный запрос Ajax, который не разрешен. В этом случае используйте JSON.
Ответ 5
В последнее время я столкнулся с этой проблемой, и в то время как я как AJAX загружал локальный запрос, а не проблему межсайтового скриптинга. Кроме того, сам Джимми, похоже, имеет такую же проблему. Это, по-видимому, проблема безопасности FF, в этой статье описывается причина, и решение для доступа к ограниченному uri отрицает проблему "code:" 1012.
Извините, эта ошибка возникла с помощью JQuery $.ajax на FireFox 3. Пробовал jsonp но я думаю, что только работать с чем-то, что будет JSON. Я пытаюсь создать образец локальный файловый mashup на html файле, который будет вытащить данные из Yahoo! Finance, но они работают .csv, поэтому я думаю, что я СОЛ. - Джимми Чандра (9 сентября в 17:20)
Надеюсь, вы сочтете это полезным.