在 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容易犯的错
- 字符串操作