获取请求参数(GET和POST)

假设有如下AJAX请求:
 
$(function () {
    $.ajax({
        url: '/request?uid=9527&site=码农人生&token=manong',
        dataType: 'json',
        type: 'POST',
        data: {
            name: '张三',
            age: 10,
            gender: '男',
        },
    })
});
 
 
 
服务端处理请求代码:

package main

import (
   "fmt"
   "net/http"
)

func main() {
   // ========== 获取请求参数(GET和POST) ========== //
   http.HandleFunc("/request", func(writer http.ResponseWriter, request *http.Request) {
      // ========== 获取GET参数 ========== //
      query := request.URL.Query()
      uid := query.Get("uid")                   // 获取uid参数
      site := query.Get("site")                 // 获取site参数
      token := query.Get("token")               // 获取token参数
      fmt.Printf("GET参数 uid = %+v \n", uid)     // GET参数 uid = 9527
      fmt.Printf("GET参数 site = %+v \n", site)   // GET参数 site = 码农人生
      fmt.Printf("GET参数 token = %+v \n", token) // GET参数 token = manong

      // ========== 获取POST参数 ========== //
      // 重要提醒①:必须先调用ParseForm()方法或ParseMultipartForm()方法,否则无法获取POST参数
      // 重要提醒②:需根据AJAX请求是否设置processData=false和contentType=false来决定用哪个方法
      _ = request.ParseForm()                      // 未设置processData=false和contentType=false用ParseForm()方法
      _ = request.ParseMultipartForm(32 << 20)     // 设置了processData=false和contentType=false用ParseMultipartForm()方法
      name := request.Form.Get("name")             // 获取name参数
      age := request.Form.Get("age")               // 获取age参数
      gender := request.Form.Get("gender")         // 获取gender参数
      fmt.Printf("POST参数 name = %+v \n", name)     // POST参数 name = 张三
      fmt.Printf("POST参数 age = %+v \n", age)       // POST参数 age = 10
      fmt.Printf("POST参数 gender = %+v \n", gender) // POST参数 gender = 男
   })

   _ = http.ListenAndServe(":8081", nil)
}

Copyright © 2024 码农人生. All Rights Reserved