作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这可能有点离谱,但一位 friend 问我这件事,这让我有些困扰。如果服务器将所有请求重定向到默认文件(例如 index.html),您如何确定地址栏中的当前路径。
假设您输入了:
www.example.com/
并且您的服务器配置会自动将此请求重定向到
www.example.com/index.html
但是您的网址栏中的地址并没有改变!那么你如何使用 Javascript 找出这个 url 上的路径是 index.html 呢?
我查看了 location.pathname,但那只给了我/。
有什么想法吗?
最佳答案
问题是它实际上不是重定向。当您在 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: */*
请注意,它正在请求一个名为 /
的文档。服务器有两种可能的响应:
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
等)。就您的浏览器而言,这只是文档 /
的内容。它不知道自己已被重定向。
关于javascript - 如何在重定向后使用 Javascript 获取 URL 路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/335337/
我是一名优秀的程序员,十分优秀!