注意:
1、需在项目app.conf中添加以下设置,否则beego获取ajax的json数据为空;
copyrequestbody = true
2、js中定义传递的json数据时,键要与model中定于的结构体保持一致,否则获取的传递数据为空;
根据ajax中设定的json数据组,在beego中定义该结构体,例如:
#js代码
email = $('#email').val();
mobile = $('#mobile').val();
role = $('#role').val();
if (role == "") {
bootbox.alert("请选择用户角色");
return false;
}
role1 = Number(role); #转换为int类型,因为在定义相关结构体时,定义的为Int类型
group = $('#group').val();
data = JSON.stringify({
"email": email,
"mobile": mobile,
"groupname": group,
"role": role1,
});
modal定义例如:
type User struct {
Id int `json:"id"`
Name string `json:"name"`
Password string `json:"password"`
Role int `json:"role" orm:"default(3)"`
Email string `json:"email"`
GroupName string `json:"groupname"`
Mobile string `json:"mobile"`
Status int64 `json:"status"`
C_time string `json:"c_time"`
}
js中ajax配置:
$.ajax({
url: '/user/edit',
data: data,
type: 'post',
async: true,
dataType: "json",
headers: {
"Content-Type": "application/json"
},
success: function (result) { #result为接收beego返回的json数据
},
error: function (result) {
}
});
beego中获取json数据操作如下:
u := &models.User{}
json.Unmarshal(c.Ctx.Input.RequestBody, u)
beego返回json数据给ajax:
result := info #info为自定义返回
c.Data["json"] = result
c.ServeJSON()
c.StopRun()
beego 可使用GetStrings方法获取数组类型数据,然后对获取的结果进行处理即可,例如
ips := make([]string, 0)
ip_lists := c.GetStrings("ips")
for _, ip_list := range ip_lists{
ips = strings.Split(ip_list, ",")
fmt.Println(ips)
}
来源:CSDN
作者:日积月累一点点
链接:https://blog.csdn.net/u011933777/article/details/103877511