如何在重定向后获得URL路径——使用Javascript?

如何在重定向后获得URL路径——使用Javascript?,javascript,dom,Javascript,Dom,这可能有点离谱,但一个朋友问我这件事,这让我有点困扰。如果服务器将所有请求重定向到默认文件(例如index.html),如何在地址栏中找到当前路径 假设您输入了: www.example.com/ 您的服务器配置会自动将此请求重定向到 www.example.com/index.html 但是url栏中的地址不会更改!那么,如何使用Javascript确定此url上的路径是index.html呢 我查看了location.pathname,但这只给了我/ 有什么想法吗?如果重定向发生在服务器

这可能有点离谱,但一个朋友问我这件事,这让我有点困扰。如果服务器将所有请求重定向到默认文件(例如index.html),如何在地址栏中找到当前路径

假设您输入了:

www.example.com/
您的服务器配置会自动将此请求重定向到

www.example.com/index.html
但是url栏中的地址不会更改!那么,如何使用Javascript确定此url上的路径是index.html呢

我查看了location.pathname,但这只给了我/


有什么想法吗?

如果重定向发生在服务器上,那么浏览器没有意识到它,并且您无法访问javascript中的实际资源。例如,servlet可能会转发到服务器上的另一个资源


如果服务器向浏览器发送重定向命令,并且浏览器请求新的url,则浏览器确实知道该url,您可以获取该url。

如果重定向发生在服务器上,则浏览器不知道该url,您无法访问javascript中的实际资源。例如,servlet可能会转发到服务器上的另一个资源


如果服务器向浏览器发送重定向命令,并且浏览器请求新的url,那么浏览器确实知道它,并且您可以获得它。

除了以某种方式将Web服务器的文件名嵌入到文档中之外,没有办法做到这一点。就浏览器而言,没有index.html,页面只是/

除了以某种方式将Web服务器的文件名嵌入文档之外,没有其他方法可以做到这一点。就浏览器而言,没有index.html,页面只是/

问题在于它实际上不是重定向。在web浏览器中键入“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: */*
请注意,它请求的是一个名为wricle/的文档。服务器有两种可能的响应:

HTTP/1.1 200 OK
(more headers)

Content...


在案例2中,您可以获得重定向位置,因为它实际上是一个重定向。但在案例1中,服务器正在执行重定向:它看到了对/的请求,而不是为其索引页面提供内容,例如index.html、index.php、default.aspx等。。就您的浏览器而言,这只是文档/的内容。它不知道它被重定向了。

问题是它实际上不是重定向。在web浏览器中键入“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: */*
请注意,它请求的是一个名为wricle/的文档。服务器有两种可能的响应:

HTTP/1.1 200 OK
(more headers)

Content...

在案例2中,您可以获得重定向位置,因为它实际上是一个重定向。但在案例1中,服务器正在执行重定向:它看到了对/的请求,而不是为其索引页面提供内容,例如index.html、index.php、default.aspx等。。就您的浏览器而言,这只是文档/的内容。它不知道它被重定向了