在 API 的開發中,我們經常會用到 JSON 或 XML 來作為數據交互的格式,這就需要獲取request的body中的數據了
* 在配置文件里設置 copyrequestbody = true
* 在 Controller 中獲取數據:
~~~
var stu Student ? //struct類型
body := s.Ctx.Input.RequestBody ? ? // 這是獲取到的json二進制數據
json.Unmarshal(body,&stu) ? ? ? ? // json解析位結構體
user := &Student{Name: stu.Name, Age: stu.Age,Addr:stu.Addr} ? // 賦值
?
s.Data["json"] = map[string]interface{}{"result": true, "msg": "success"} ? // 返回map結構數據
fmt.Println(user)
s.ServeJSON() ? ? ? // 返回json格式
?
?
注意:
s.Data["json"]這里必須叫json,因為s.ServeJSON()解析json變量的
~~~
前端:
~~~
需要引入jquery的js文件:
<script src="/static/js/jquery.min.js"></script>
?
<form>
? ? ? 用戶名:<input type="text" name="username" id="username"><br>
? ? ? 年齡:<input type="text" name="age" id="age"><br>
? ? ? 住址:<input type="text" name="addr" id="addr"><br>
? ? ? <input type="button" value="提交" id="btn"><br>
?
</form>
?
<script>
? var btn = document.getElementById("btn");
? btn.onclick = function (ev) {
? ? ? ev.preventDefault();
? ? ? var username = document.getElementById("username").value;
? ? ? var age = document.getElementById("age").value;
? ? ? var addr = document.getElementById("addr").value;
?
? ? ? $.ajax({
? ? ? ? ? url: "/student",
? ? ? ? ? type: "POST",
? ? ? ? ? //這才是最重要的地方,必須用JSON.stringify序列化成字符串,
? ? ? ? ? data: JSON.stringify({
? ? ? ? ? ? ? "Name":username,
? ? ? ? ? ? ? "Age":Number(age), ? ? ? 如果是int類型,前端得轉一下
? ? ? ? ? ? ? "Addr":addr
? ? ? ? ? }),
? ? ? ? ? //json格式
? ? ? ? ? dataType: "JSON",
?
? ? ? ? ? success:function (data) {
? ? ? ? ? ? ? var messg=data.msg;
? ? ? ? ? ? ? alert(messg)
? ? ? ? ? },
? ? ? ? ? error:function (error) {
? ? ? ? ? ? ? alert(error.msg)
? ? ? ? ? }
? ? ? })
? }
?
</script>
~~~
- go環境搭建
- 解決go get網絡慢的問題
- beego的安裝
- bee的安裝
- 編輯器
- go module
- 配置文件詳解
- 配置文件其他說明
- 路由方法
- 路由
- 數據校驗
- 校驗函數
- 頁面跳轉
- 獲取前端數據
- json文件的獲取
- xsrf的用法
- xsrf的防護
- srfs和json的搭配
- flash的用法
- 過濾器
- url反轉
- 各類數據的處理
- 模板函數
- 內置模板函數
- 自定義模板函數
- 模板
- 模板處理
- 模板渲染
- 視圖文件的處理
- 靜態文件
- 請求方式判斷
- 驗證碼
- 另一種方法
- 分頁類
- session
- 登錄判斷
- orm模塊
- 使用方法
- mysql的安裝
- 安裝orm及驅動
- 建立模型
- 自定義模型
- 增刪改查
- 高級查詢
- 常見問題匯總
- 代碼收藏
- 打包部署
- go build打包
- utils收藏
- 新goer容易犯的錯
- 字符串操作