Проблемы со статусом xmlhttprequest 302 - PullRequest
3 голосов
/ 23 сентября 2011

Я пытаюсь получить реальный путь в мегапрограмме, но всегда, но это не работает.

function getRealURL(){

    var st = new String(""); 
    var req = new XMLHttpRequest();
    req.open("GET","http://www.megaupload.com/?d=6CKP1MVJ",true);
    req.send(null);
    req.send(null);
    req.onreadystatechange = function (aEvt) {
     if (req.readyState == 4) {
        if(req.status == 302){
          //SUCESSO
           st = req.responseText;
        }
      }
    };//funcao

    element.getElementById("id").setAttribute("value", st);

}

Мне нужна эта ссылка:

Redirect to: http://www534.megaupload.com/files/c2c36829bc392692525f5b7b3d9d81dd/Coldplay - Warning Sign.mp3

из этого:

http://www.megaupload.com/?d=6CKP1MVJ

1 Ответ

7 голосов
/ 23 сентября 2011

XMLHttpRequest автоматически выполняет перенаправление по умолчанию, поэтому вы не видите ответ 302.Вам нужно установить свойство nsIHttpChannel.redirectionLimit на ноль, чтобы предотвратить его:

req.open("GET","http://www.megaupload.com/?d=6CKP1MVJ",true);
req.channel.QueryInterface(Components.interfaces.nsIHttpChannel).redirectionLimit = 0;
req.send(null);

Не то, чтобы ссылка, которую вы здесь используете, перенаправляет куда-либо, но это общий подход.Кстати, вместо того, чтобы смотреть текст ответа для перенаправлений, вы должны смотреть на req.getResponseHeader("Location").

...