Golang - ParseForm; err = mime:第一个令牌后的预期斜杠

时间:2016-12-16 04:49:36

标签: forms go

得到这个Error = mime: expected slash after first token  下面有一些细节。

目标是用户名和密码的登录表单 可以从POST中提取。

我还测试了一个卷曲帖子和一个静态html表单 - >同一问题= mime: expected slash after first token

go代码片段:

log.Printf("\n\n\t[loginH()] - POST method ...\n")
err := r.ParseForm()
if err != nil {
        // Handle error here via logging and then return
        DebugLog.Printf("[loginH()] - ERROR: with r.ParseForm. (err=%v)\n", err)
        log.Printf("[loginH()] - ERROR: with r.ParseForm. (err=%v)\n", err)
}
username := r.Form["username"]
passwd := r.Form["passwd"]
log.Printf("[loginH()] - r.Form ... username=%s and passwd=%s\n",username,passwd)

html /表单是:

<form method="POST" action="/login">
    <input type="text" name="username" placeholder="Email Address"/>
    <input type="password" name="passwd" placeholder="Password"/>
    <input type="submit"  id="loginBtn" name="login" value="Logon"/>
</form>

输出是:

2016/12/15 21:36:07 [loginH()] - POST method ...
2016/12/15 21:36:07 [loginH()] - ERROR: with r.ParseForm. (err=mime: expected slash after first token)
2016/12/15 21:36:07 [loginH()] - r.Form ... username= and passwd=

提前感谢任何指针/信息/启示。

r.Form是空的

1 个答案:

答案 0 :(得分:0)

此错误来自mediatype.go的第85行。您可能在内部调用ParseMediaType方法时收到此错误。从那里看起来你的静态形式或卷曲没有正确设置Content-Type或Content-Disposition的某些值。请检查这些标题是否存在任何有问题的值。

来自docs:

// ParseMediaType parses a media type value and any optional
// parameters, per RFC 1521.  Media types are the values in
// Content-Type and Content-Disposition headers (RFC 2183).
// On success, ParseMediaType returns the media type converted
// to lowercase and trimmed of white space and a non-nil map.
// The returned map, params, maps from the lowercase
// attribute to the attribute value with its case preserved.