http.Server — 获取 URL 片段

使用标准提取片段数据(foo在http://domain.com/path#foo 中)没有运气http.Server。


package main


import (

    "fmt"

    "net/http"

)


type Handler struct {

}


func (handler Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {

    fmt.Printf("Path = \"%v\"  Fragment = \"%v\"\n", r.URL.Path, r.URL.Fragment)

}


func main() {

    var handler Handler

    http.ListenAndServe(":30000", handler)

}

产生空片段http://127.0.0.1:30000/path#foo:


Path = "/path"  Fragment = ""


如何使用 golang 的 builtin 获取片段数据http.Server?


慕尼黑的夜晚无繁华
浏览 198回答 1
1回答

守着星空守着你

你不能。这不是 Go 的事情——URL 片段不会通过 HTTP 发送到服务器。它们只是一个浏览器概念。这是一个相关问题,其中的文档http.Request已更改为:// For server requests the URL is parsed from the URI// supplied on the Request-Line as stored in RequestURI.  For// most requests, fields other than Path and RawQuery will be// empty. (See RFC 2616, Section 5.1.2)如果出于某种原因需要它,您可以将一些 JavaScript 串在一起,以将片段作为GET参数或其他东西包含在请求中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go