在 Vapor 中获取 URI 的片段
Get fragments of URI in Vapor
对于我的 Vapor 应用程序,我需要读取请求的 URI 片段。
let drop = Droplet()
drop.get("fragment") {
request in
print("URI: \(request.uri)")
print("Fragment: \(request.uri.fragment)")
return ""
}
问题是:当我请求http://myserver/fragment#hello
时,request.uri.fragment
是nil
。这是在控制台中打印的:
URI: http://localhost:8080/fragment
Fragment: nil
我错过了什么吗? Vapor documentation 没有提到片段不包含在 URI
中的任何情况。
URI 片段仅供客户端使用。您的 Vapor 服务器甚至没有收到它们。如果你想将片段中的数据发送到你的服务器,你应该直接使用查询参数,或者你需要在客户端解析片段(即 JavaScript 如果这是一个网络应用程序)并通过他们以其他方式发送到服务器。
来自 Wikipedia:
Fragments depend on the document MIME type and are evaluated by the client (Web browser). Clients are not supposed to send URI-fragments to servers when they retrieve a document
对于我的 Vapor 应用程序,我需要读取请求的 URI 片段。
let drop = Droplet()
drop.get("fragment") {
request in
print("URI: \(request.uri)")
print("Fragment: \(request.uri.fragment)")
return ""
}
问题是:当我请求http://myserver/fragment#hello
时,request.uri.fragment
是nil
。这是在控制台中打印的:
URI: http://localhost:8080/fragment
Fragment: nil
我错过了什么吗? Vapor documentation 没有提到片段不包含在 URI
中的任何情况。
URI 片段仅供客户端使用。您的 Vapor 服务器甚至没有收到它们。如果你想将片段中的数据发送到你的服务器,你应该直接使用查询参数,或者你需要在客户端解析片段(即 JavaScript 如果这是一个网络应用程序)并通过他们以其他方式发送到服务器。
来自 Wikipedia:
Fragments depend on the document MIME type and are evaluated by the client (Web browser). Clients are not supposed to send URI-fragments to servers when they retrieve a document