Подтвердить что ты не робот

Доступ к ограниченному идентификатору URI: 1012

Как вы обошли эту проблему с использованием скриптового скрипта Ajax на FireFox 3?

4b9b3361

Ответ 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)

Надеюсь, вы сочтете это полезным.