我正在使用 Appengine Blob 商店示例,它工作正常(我修改为采用两个文件,但这不是问题)。但是,当我打开nosurf 时,它会给我一个HTTP 400. 我正在将 csrf 令牌传递给我的表单。即使我只上传一个文件,问题仍然存在。
nosurf 适用于其他形式,但只会给我带来 blobstore 文件上传的麻烦。
由于代码很大(这只是一些小调整的例子),我把它放在这里:http : //play.golang.org/p/SJADmn-WvJ(当然你不能在那里运行它,因为你需要应用引擎和 nosurf)
代码的小部分:
const rootTemplateHTML = `
<html><body>
<form action="{{.UpUrl}}" method="POST" enctype="multipart/form-data">
Upload File: <input type="file" name="file1"><br>
Upload File: <input type="file" name="file2"><br>
<input type="hidden" name="csrf_token" value="{{ .Token }}">
<input type="submit" name="submit" value="Submit">
</form>
</body></html>
`
这不起作用:
http.Handle("/", nosurf.New(http.HandlerFunc(handleRoot)))
http.Handle("/upload", nosurf.New(http.HandlerFunc(handleUpload)))
http.HandleFunc("/serve/", handleServe)
但这有效(无400状态):
http.HandleFunc("/", handleRoot)
http.HandleFunc("/serve/", handleServe)
http.HandleFunc("/upload", handleUpload)
这是与nosurf还是有关app-engine?关于我应该怎么做来解决这个问题的任何建议?
ABOUTYOU
相关分类