【发布时间】:2016-11-01 19:51:10
【问题描述】:
我正在遵循 The Way to Go 中第 19 章中的示例。
这是我main.go的内容
package main
import (
"fmt"
"net/http"
)
const AddForm = `
<form method="POST" action="/add">
URL: <input type="text" name="url">
<input type="submit" value="Add">
</form>
`
func main() {
http.HandleFunc("/add", Add)
http.ListenAndServe(":8080", nil)
}
func Add(w http.ResponseWriter, r *http.Request) {
url := r.FormValue("url")
if url == "" {
fmt.Fprint(w, AddForm)
return
}
key := "Placeholder"
fmt.Fprintf(w, "http://localhost:8080/%s", key)
}
根据这本书和它的截图,我应该会在我的浏览器中看到一个有效的表单。但是现在,我只能看到原始字符串。
我是新手,所以我不确定自编写示例以来该语言是否发生了很大变化。我的 go 版本是 go version go1.6.2 linux/amd64,我认为这本书是在 2012 年用旧版本的 go 写的。
如何修改它以使其在浏览器中呈现为表单?谢谢。
【问题讨论】:
-
AddForm不是一个完整的 html 页面,它只是表单片段。另外,您将返回Content-Type: text/plain。这个例子还有更多吗?这永远不会与 Go 标准库一起工作。