1.首先关闭beego自动渲染模板开关。

如果您的应用是不需要模板输出的,那么可以在配置文件或者在 main.go 中设置关闭自动渲染。

配置文件配置如下:

autorender = false

main.go 文件中设置如下:

beego.AutoRender = false

用户无需手动的调用渲染输出模板,beego 会自动的在调用完相应的 method 方法之后调用 Render 函数,当然如果您的应用是不需要模板输出的,那么可以在配置文件或者在 main.go 中设置关闭自动渲染。

配置文件配置如下:

autorender = false

2.使用beego框架的输出json 数据,方法如下。

其实两个方法都一样只是一个是从数据表中获取数据转json,一个是自己定义的转json

方法一:

func (n *WelcomeController) Add() {

		nyy := orm.NewOrm()
		//定义一个结构体
		type Res struct {
			Id      int
			Name    string
			Comm    string
			Content string
		}
		var comm1 []Res
		_, err := nyy.Raw("select * from yf_class").QueryRows(&comm1)
		fmt.Println(err)
		fmt.Println(comm1)
		n.Data["json"] = comm1
		n.ServeJSON()

}

方法二:

func (n *WelcomeController) Index() {
	 type JSONStruct struct {
        Code int
        Msg  string
    }
    func (c *MainController) Get() {
        mystruct := &JSONStruct{0, "hello"}
        c.Data["json"] = mystruct
        c.ServeJSON()
    }
}

大概输出格式:

二,
  • Vue使用axios或resource 来请求 beego提供的接口。

1.首先安装axios或

cnpm install --save axios

 

 cnpm install -- save vue-resource

安装后引入两个模块,在main.js引入

使用axios和resource方法,调用后会出现跨域问题,前端截图如下:

前端这样写:js代码

<script >
export default {
  data() {
    return {
      checkedValue: "",
      list: []
    };
  },
  methods: {
    changeOption: function(e) {
      alert(e);
      var _this = this;
      //alert(_this);
      this.axios
        .get("http://www.go.com/welcomeindex?classif=" + e) //请求接口
        .then(function(response) { //请求成功
          _this.list = response.data; //后台传过来的值 json
          //alert(list);
        })
        .catch(function(error) {
          //请求失败
          console.log(error);
        });
    }
  }
};
</script>

 

 

HTML代码  使用的是 VUE 来实现的

 <table cellspacing="1" style="table-layout: fixed;">
                <thead>
                  <tr>
                    <th class="row-selected row-selected" style="width: 40px;">
                      <input autocomplete="off" type="checkbox" id="checkAll" class="check-all regular-checkbox">
                      <label for="checkAll"></label>
                    </th>
                    <th width="10%">编号</th>
                    <th>文本内容</th>
                    <th>操作</th>
                  </tr>
                </thead>
                <tbody>
                  <tr v-for="nyy in list">
                    <td>
                      <input autocomplete="off" type="radio" v-bind:value="nyy.Id" name="ids[]" id="check_1">
                    </td>
                    <td title="1">{{nyy.Id}}</td>
                    <td title="123123">{{nyy.Textnyy}}</td>
                    <td title="123123">{{nyy.Type}}</td>
                    <td style="overflow: auto;white-space: normal ">
                      <span>
                        <a target="_self" href>编辑</a>
                      </span>
                      <span>
                        <a class="tr-del" data-url>删除</a>
                      </span>
                    </td>
                  </tr>
                </tbody>
              </table>

三,beego 安装cors 模块 go get包

配置代码,放在main.go中 

具体代码如下:

beego.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{
		AllowAllOrigins:  true,
		AllowMethods:     []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
		AllowHeaders:     []string{"Origin", "Authorization", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"},
		ExposeHeaders:    []string{"Content-Length", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"},
		AllowCredentials: true,
}))