Аякс и статус 302
У меня проблема с ajax (и / или jQuery ajax) и статусом 302.
Вот что я пытаюсь:
var xhr = new XMLHttpRequest();
xhr.open("GET", 'some_page_that_I_cant_change.php');
xhr.onreadystatechange = function(){
console.log(xhr.readyState, xhr.status);
};
xhr.send(null);
some_page_that_I_cant_change.php
перенаправляет на .bin
с 302
код. Я не хочу скачивать этот файл, я просто хочу знать путь к файлу. Пример:
./some_page_that_I_cant_change.php
./path/to/bin/file.bin << I wan't only this path as string
Проблема в том, что Chrome автоматически перенаправляет в файл, не указывая мне путь к скрипту. Есть ли обходной путь для этого?
3 ответа
Если вы используете запрос HEAD вместо запроса GET, я подозреваю, что он будет делать то, что вы хотите. Вы должны видеть только заголовки в ответе, а не тело ответа (т. Е. Нет загрузки.bin).
Существует старая ветка о точно такой же теме с решениями и обходными путями: Как управлять запросом на перенаправление после вызова jQuery Ajax
Одним словом: я не думаю, что вы можете сделать это причиной протокола HTTP.
Протокол HTTP ([1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html) предусматривает, что 302 означает URI перенаправления, а браузеры следуют. Итак, JavaScript не может получить ответ перенаправления, просто получить окончательный ответ.
Итак, вы должны получить путь по телу ответа.