【Go.Beego】学习笔记,表格传值以及Ajax传值注意点,处理beego请求参数为空的问题。
  OIW0KlaMcRRl 2023年11月28日 34 0


前沿:跟着ccmouse(imooc)的课程将go的基础知识学习完毕之后,开始想着做点东西,因为笔者从事的Java领域的后端开发。所以很容易的想着写个博客啊管理什么的。所以在比较了Gin和beego几个框架之后,选定beego先行练手。

基本上先是按照beego官方的文档过了一遍,因为最近升级了beegoV2,文档似乎还没有完全更新。尤其是在beego的mvc设计-controller-请求数据处理这一节,关于form提交与ajax提交,样例不是很全,然后文档呢,相对来说不是太细。

1.表单提交(这个怪我,没有看到注意就开始下手了,传递了id,tag就是没传递name)

【Go.Beego】学习笔记,表格传值以及Ajax传值注意点,处理beego请求参数为空的问题。_go

表单传值样例

前端:

<div>
        <form action="/manage" method="POST">
            <input id="Id" name="Id" type="text">
            <input id="Content" name="Content" type="text">
            <input type="submit">
        </form>
    </div>

后端:

要注意的是,一定要传值name,然后名称要和后端接收的实体类一致,如果直接解析到struct的话。(这里的this 就是 controller),可以直接使用GetString()或者 getxxxx()获取

id := this.GetString("Id")

    content := this.GetString("Content")

    fmt.Println(id)

    fmt.Println(content)

Json传值样例:

前端:

<script>
    $("#sBtn").click(function (){
        console.log("button clicked!")
        $(function(){
        //请求参数
        var list = {"id":"1111"};
        //
        $.ajax({
            //请求方式
            type : "Post",
            //请求的媒体类型
            // contentType: "application/json; charset=utf-8", # 这样写无效
            dataType:"JSON",   # 要注意这样写
            //请求地址
            url : "http://localhost:8080/manage/",
            //数据,json字符串
            // data : JSON.stringify(list),
            data: {"Id":1111,"Content":"aaa"},  # 这里只是示意
            //请求成功
            success : function(result) {
                console.log("2222222222222222")
                console.log("-------"+this.data)
                console.log(result);
            },
            //请求失败,包含具体的错误信息
            error : function(e){
                console.log(e.status);
                console.log(e.responseText);
            }
        });
    });
    });
    

</script>

注意点:1.dataType一定要写,即dataType:"POST",这里简单的以ajax为例。

后端:

type MyData struct {
	Id      int
	Content string
}

func (this *ManageController) Post() {
	id := this.GetString("Id")
	content := this.GetString("Content")
	fmt.Println(id)
	fmt.Println(content)
	var data = new(MyData)
	err := this.ParseForm(&data)
	if err != nil {
		fmt.Println("参数为空!")
	}
	var data2 MyData
	json.Unmarshal(this.Ctx.Input.RequestBody, &data2)
	fmt.Println(data2)
	mystrct := new(MyData)
	mystrct.Id = 111
	mystrct.Content = "这是一个很寂寞的天下着有些伤心的雨"
	this.Data["json"] = &mystrct
	this.ServeJSON()
}

关于官方案例里边的models.Object() 我是没找到,然后目前不清楚这个models.Object()哪里来的。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月28日 0

暂无评论

推荐阅读
  raKFu9QULpEG   2023年12月23日   66   0   0 gogo
  raKFu9QULpEG   2023年12月23日   56   0   0 gogo
  raKFu9QULpEG   2023年12月23日   31   0   0 gogo
  raKFu9QULpEG   2023年12月23日   27   0   0 gogo
  raKFu9QULpEG   2023年12月23日   23   0   0 gogo
  raKFu9QULpEG   2023年12月23日   66   0   0 gogo
OIW0KlaMcRRl