我如何获得完整的网址

Posted

技术标签:

【中文标题】我如何获得完整的网址【英文标题】:How do I get the full url 【发布时间】:2012-08-18 12:43:22 【问题描述】:

如何获取完整的 url ,例如 http://user:pass@host.com:8080/p/a/t/h?query=string#hash 。 使用 request.url 可以得到 /p/a/t/h?query=string ,但我希望得到完整的包括#hash。 我该怎么办?

var http = require('http');
var url = require('url');
http.createServer(function (request, response) 
   response.writeHead(200, 'Content-Type': 'text/plain');
   response.end(request.url + '\n');
).listen(8124);

【问题讨论】:

【参考方案1】:

哈希不发送到服务器。您无法在服务器端获取它。 (至少,如果没有一些运行客户端的代码通过 AJAX 在另一个请求中发送它。)

【讨论】:

忽略 #hash - 操作如何获取用户:通过 URL 部分 @CodeUniquely 该部分设置在Authorization标头中,base-64编码。 @CodeUniquely 这不是 HTTP 的工作方式。完整的 URL 永远不会发送到服务器。只有带有查询字符串的“路径”部分是。如果您不相信我,请启动像 Wireshark 这样的数据包嗅探器并查看一下。 XHR.open() 方法用户名/密码用于 CORS 请求。【参考方案2】:

“#”后面的内容是客户端的书签,不属于发送到服务器的URL。您可能想阅读“后退按钮”问题以了解其含义。 SO上与此相关的内容:Detecting Back Button/Hash Change in URL。

【讨论】:

以上是关于我如何获得完整的网址的主要内容,如果未能解决你的问题,请参考以下文章

我如何在我的 websocket 龙卷风中获得动态网址?

我如何在 rails 中获得 twitter/friendfeed 之类的主页网址?

我怎样才能获得上一个网址的路径?

PhpStorm 和 JavaScript:如何获得完整的文档支持

如何在 Laravel/Eloquent 中获得完整的关系

如何在mpdf中获得完整的图像宽度