站长资讯网
最全最丰富的资讯网站

Golang如何接收前端的参数

使用Golang开发web后台,需要接收前端传来的参数并作出响应,那么Golang该如何接收前端的参数呢?一起来看下吧。

Golang如何接收前端的参数

Golang如何接收前端的参数

1、首先,创建一个Golang web服务。

package main  import (     "log"     "fmt"     "net/http"     "html/template" )  // 返回静态页面 func handleIndex(writer http.ResponseWriter, request *http.Request) {     t, _ := template.ParseFiles("index.html")     t.Execute(writer, nil) }  func main() {     http.HandleFunc("/", handleIndex)      fmt.Println("Running at port 3000 ...")      err := http.ListenAndServe(":3000", nil)      if err != nil {         log.Fatal("ListenAndServe: ", err.Error())     } }

index.html

<!DOCTYPE html> <html> <head>   <meta charset="UTF-8">   <title>Document</title> </head> <body>   Golang GET&POST </body> </html>

2、然后编写前端get post请求,使用了axios库,请自行引入。

<script>   axios.get('/testGet', {     params: {       id: 1,     }   }).then((response) => {     console.log(response);   });      // POST数据 const postData = {   username: 'admin',   password: '123', };  axios.post('/testPostJson', postData).then((response) => {   console.log(response); }); </script>

3、接着,在Golang中实现接收get post参数即可。

一、Golang接收前端GET请求的参数

// 处理GET请求 func handleGet(writer http.ResponseWriter, request *http.Request) {     query := request.URL.Query()      // 第一种方式     // id := query["id"][0]      // 第二种方式     id := query.Get("id")      fmt.Printf("GET: id=%sn", id)      fmt.Fprintf(writer, `{"code":0}`) }  func main() {     // ...      http.HandleFunc("/testGet", handleGet)      // ... }

服务端打印如下:

GET: id=1

二、Golang接收前端POST请求的参数

// 引入encoding/json包 import (     // ...     "encoding/json" )  // 处理application/json类型的POST请求 func handlePostJson(writer http.ResponseWriter, request *http.Request) {     // 根据请求body创建一个json解析器实例     decoder := json.NewDecoder(request.Body)      // 用于存放参数key=value数据     var params map[string]string      // 解析参数 存入map     decoder.Decode(&params)      fmt.Printf("POST json: username=%s, password=%sn", params["username"], params["password"])      fmt.Fprintf(writer, `{"code":0}`) }  func main() {     // ...      http.HandleFunc("/testPostJson", handlePostJson)      // ... }

服务端打印如下:

POST json: username=admin, password=123

赞(0)
分享到: 更多 (0)
网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号