xmlhttprequest - ошибка исключения 101 - PullRequest
2 голосов
/ 17 сентября 2011
requrl_1 = "http://www.example.com/index.php";
requrl_2 = "http://www.example.com/redirect.php";

когда я запрашиваю " requrl_1 ", проблем нет. Я получаю ответ. « index.php » не является страницей перенаправителя.

, но requrl_2 - это страница перенаправителя, которая перенаправляет на другой веб-сайт (например: http://www.cnn.com).

поэтому, когда я запрашиваю с XMLHttpRequest, я получаю исключение 101 ошибка.

Я должен запросить " redirect.php ", другого решения нет.

Как я могу это сделать? Почему я получаю ошибку " исключение 101 ".


Я кодирую Greasemonkey userscript скрипт для google chrome .

Ответы [ 2 ]

1 голос
/ 17 сентября 2011

Из XMLHttpRequest Spec

Если что-то идет не так (бесконечный цикл, сетевые ошибки), состояние должно быть установлено как загруженное и все члены (исключая readyState) объектадолжен быть установлен в их начальное значение.Кроме того, если для async задано значение false, то должно возникнуть исключение NETWORK_ERR.Кроме того, все зарегистрированные прослушиватели событий должны быть удалены.

По сути, перенаправление вызывает срабатывание одной и той же политики источника.Который запускает ошибку.Запрос должен обслуживаться прокси, а не перенаправлением.

1 голос
/ 17 сентября 2011

Лучше всего просто установить Tampermonkey и использовать его для запуска вашего скрипта. Затем вы можете кодировать с помощью GM_xmlhttpRequest() Doc - с поддержкой междоменных доменов. А сценарии получают расширенные возможности, чтобы соответствовать возможностям, которые Greasemonkey может делать в Firefox.

Если вы не хотите устанавливать Tampermonkey , пользовательские скрипты Chrome теперь поддерживают межсайтовые запросы через GM_xmlhttpRequest().

Итак, вы можете использовать:

GM_xmlhttpRequest ( {
    method:     "GET",
    url:        "http://www.example.com/redirect.php",
    onload:     function (response) {
                    //-- Do your business here.
                }
} );
...