XMLHttpRequest в опере закачаивает не весь файл
От: vasilov  
Дата: 18.03.09 08:58
Оценка:
Пытаюсь переделать один userJS для оперы.
Почему-то не закачивается торрент файл скриптом с torrents.ru.
Вот код, минимизированный (только самое необходимое для получения ошибки).
// ==UserScript==
// @include        http://torrents.ru/forum/viewtopic.php*
// ==/UserScript==

document.addEventListener(
      'load',
      function (e) {
        //alert('message');
        document.evaluate(
            '//div[@class="mrg_4 pad_4"]',
            document,
            null,
            XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
            null).snapshotItem(0).innerHTML += "<br/>Количество пиров на retracker.psihaven.com: <span id='retracker_peers'><a href='javascript:getPeersCount()'>Получить</a></span>";
      },
      false
    );
    
window.getPeersCount = function() {
    window.$('#retracker_peers').html("Запрос количества пиров...");
    url = window.$('a[@class="dl-stub dl-link"]').attr('href');
    alert(url);
    
    xmlhttp = new XMLHttpRequest();

//    xmlhttp.overrideMimeType('text/plain; charset=x-user-defined');

    xmlhttp.open('GET', url, true);
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4) {
            if(xmlhttp.status == 200) {
                alert(xmlhttp.responseText.length);
          //  ...
            }
        }
    }
    xmlhttp.send(null);
}

Файл целиком никогда не закачивается.
От полукилобайта до 2 закачивается и все.
В firefox 3 нормально.

PS: В опере "Инструменты — Настройки — Дополнительно — Содержимое — Кнопка 'Настройть JavaScript' — Указать папку пользовательских скриптов".
В эту папку положить код в файле *.js.
Зайти на страницу http://torrents.ru/forum/viewtopic.php?t=1616783 . Подождать загрузки и под списком пиров нажать ссылку получить.
Получается, что никогда 14 килобайт (размер торрента) не получается.

На operafan спрашивал. Ни ответа, ни привета.
Может здесь кто подскажет, всеж к веб программированию вопрос относится.

Традиционный вопрос. Что делать?
... << RSDN@Home 1.2.0 alpha 4 rev. 1125>>
Re: XMLHttpRequest в опере закачаивает не весь файл
От: Jyk Россия  
Дата: 18.03.09 09:52
Оценка:
Мне кажется запрос верным, тем более что работает в других браузерах. Могу только посоветовать проверить.. Используй ссылку на локальный текстовый файл, если и он возьмётся не верно, возможно у тебя криво поставилась опера.. иначе проблема на этапе получения данных с сервера..
Re[2]: XMLHttpRequest в опере закачаивает не весь файл
От: vasilov  
Дата: 19.03.09 19:43
Оценка:
Здравствуйте, Jyk, Вы писали:

Jyk>Мне кажется запрос верным, тем более что работает в других браузерах. Могу только посоветовать проверить.. Используй ссылку на локальный текстовый файл, если и он возьмётся не верно, возможно у тебя криво поставилась опера.. иначе проблема на этапе получения данных с сервера..


Поэкспериментировал.
Ссылка на локальный файл не катит, ибо невозможны запросы с XMLHttpRequest меж разными доменами.
Я попробовал в качестве урла подставлять адрес какой-либо страницы с торрентс.ру.
Получает правильный размер.
А вот с торрент файлом всегда неправильный.
Читал описание XMLHttpRequest — вроде бы должен работать с бинарными данными.

Проблема в опере, но не конкретно в моей. Везде так.
Почему? Как обойти?
... << RSDN@Home 1.2.0 alpha 4 rev. 1125>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.