Как получить URL-адрес после перенаправления - с помощью Javascript?

Это могло быть немного необычно, но друг спросил меня об этом, и это меня как-то беспокоит. Как определить текущий путь в адресной строке, если сервер перенаправляет все запросы в файл по умолчанию, скажем, index.html.

Допустим, вы вошли:

www.example.com/

И конфигурация вашего сервера автоматически перенаправляет этот запрос на

www.example.com/index.html

Но адрес в строке вашего url не меняется! Итак, как с помощью Javascript определить, что путь по этому URL-адресу - index.html?

Я заглянул в location.pathname, но это дает мне только /.

Есть идеи?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
3 404
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Если перенаправление происходит на сервере, браузер не знает об этом, и вы не можете получить доступ к фактическому ресурсу в javascript. Например, сервлет может «пересылать» другому ресурсу на сервере.

Если сервер отправляет браузеру команду перенаправления, а браузер запрашивает новый URL-адрес, тогда браузер знает об этом, и вы можете его получить.

Это невозможно сделать, кроме как каким-то образом встроить имя файла веб-сервера в документ. Что касается браузера, то index.html нет, страница просто /.

Ответ принят как подходящий

Проблема в том, что на самом деле это не перенаправление. Когда вы вводите 'www.example.com' в свой веб-браузер, браузер генерирует HTTP-запрос, подобный следующему:

GET / HTTP/1.1
User-Agent: curl/7.16.3 (i686-pc-cygwin) libcurl/7.16.3 OpenSSL/
0.9.8h zlib/1.2.3 libssh2/0.15-CVS
Host: www.example.com
Accept: */*

Обратите внимание, что он запрашивает документ с буквальным названием /. Сервер может ответить двумя способами:

HTTP/1.1 200 OK
(more headers)

Content...

И

HTTP/1.1 301 Moved Permanently
Location: (location of redirect)
(more headers)

(Optional content)

В случае № 2 вы можете получить адрес перенаправления, поскольку на самом деле это перенаправление. Но в случае № 1 сервер выполняет перенаправление: он видит запрос для / и вместо этого обслуживает контент для любой его индексной страницы (например, index.html, index.php, default.aspx и т. д.). Что касается вашего браузера, это просто содержимое документа /. Он не знает, что его перенаправили.

Другие вопросы по теме