英文:
How to get ajax post request value in Go lang?
问题
我正在使用Go
进行工作。以下是处理客户端请求的代码。
package main
import (
"net/http"
"fmt"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "<html><head><script>function createGroup(){var xmlhttp,number = document.getElementById('phoneNumber').value,email = document.getElementById('emailId').value; var values = {}; values.number = phoneNumber; values.email= emailId; if (window.XMLHttpRequest){xmlhttp=new XMLHttpRequest();}else{xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');}xmlhttp.open('POST','createGroup',true);xmlhttp.send(values.toString());}</script></head><body><h1>Group</h1><input type='text' name='phoneNumber' id='phoneNumber'/><input type='email' id='emailId' name='emailId'/><button onClick='createGroup()'>Create Group</button></body></html>")
})
http.HandleFunc("/createGroup", func(w http.ResponseWriter, r *http.Request) {
fmt.Println(r)
//尝试获取用户信息
})
panic(http.ListenAndServe(":8080", nil))
}
注意
Client:
包含两个文本框用于获取电话号码
、电子邮件
和createGroup
按钮。
-
如果用户点击
createGroup
,将使用ajax触发/createGroup
的POST请求。 -
在服务器端(Go)处理createGroup请求。
问题
如何在服务器端获取电话号码和电子邮件?
我在/createGroup
处理程序中打印了请求,但是值丢失了。
输出:&{POST /createGroup HTTP/1.1 1 1 map[Accept:[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8] Accept-Encoding:[gzip, deflate] Content-Length:[15] Content-Type:[text/plain; charset=UTF-8] Connection:[keep-alive] Pragma:[no-cache] Cache-Control:[no-cache] User-Agent:[Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:25.0) Gecko/20100101 Firefox/25.0] Accept-Language:[en-US,en;q=0.5] Referer:[http://localhost:8080/]] 0xc200099ac0 15 [] false localhost:8080 map[] map[] <nil> map[] 127.0.0.1:59523 /createGroup <nil>}
任何帮助将不胜感激。
英文:
I am working in Go
. Following code to handle the client request.
package main
import (
"net/http"
"fmt"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "<html><head><script>function createGroup(){var xmlhttp,number = document.getElementById('phoneNumber').value,email = document.getElementById('emailId').value; var values = {}; values.number = phoneNumber; values.email= emailId; if (window.XMLHttpRequest){xmlhttp=new XMLHttpRequest();}else{xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');}xmlhttp.open('POST','createGroup',true);xmlhttp.send(values.toString());}</script></head><body><h1>Group</h1><input type='text' name='phoneNumber' id='phoneNumber'/><input type='email' id='emailId' name='emailId'/><button onClick='createGroup()'>Create Group</button></body></html>")
})
http.HandleFunc("/createGroup",func(w http.ResponseWriter, r *http.Request) {
fmt.Println(r)
//Try to get the user information
})
panic(http.ListenAndServe(":8080", nil))
}
###Note
Client:
Contains two text box to get the phone number
, email
and createGroup
button.
-
If user clicks the
createGroup
, Post request of/createGroup
is triggered using ajax. -
createGroup request is handled in server(Go)
###Problem
How to get the phone number and email in server side?
I have printed the request in /createGroup
handler but values are missing.
Output: &{POST /createGroup HTTP/1.1 1 1 map[Accept:[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8] Accept-Encoding:[gzip, deflate] Content-Length:[15] Content-Type:[text/plain; charset=UTF-8] Connection:[keep-alive] Pragma:[no-cache] Cache-Control:[no-cache] User-Agent:[Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:25.0) Gecko/20100101 Firefox/25.0] Accept-Language:[en-US,en;q=0.5] Referer:[http://localhost:8080/]] 0xc200099ac0 15 [] false localhost:8080 map[] map[] <nil> map[] 127.0.0.1:59523 /createGroup <nil>}
Any help will be grateful.
答案1
得分: 25
使用ParseForm
和r.FormValue
进行处理,例如:
http.HandleFunc("/createGroup", func(w http.ResponseWriter, r *http.Request) {
r.ParseForm()
fmt.Println(r.Form)
fmt.Println(r.FormValue("email"))
})
英文:
Use ParseForm
and r.FormValue
, for example :
http.HandleFunc("/createGroup",func(w http.ResponseWriter, r *http.Request) {
r.ParseForm()
fmt.Println(r.Form)
fmt.Println(r.FormValue("email"))
})
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论