使用beego异步传递ajax的jason

本文介绍如何在Go语言的Beego框架中实现异步处理Ajax请求,通过返回JSON数据来提高Web应用的响应速度。首先,我们创建一个控制器处理Ajax请求,然后在后台进行异步处理,最后将处理结果封装为JSON并返回给前端。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package routers

import (
	"monitor/controllers"
	"github.com/astaxie/beego"
	//"monitor/http"
)

func init() {
	//beego.Router("/", &controllers.MonitorController{})
	//beego.Router("/TestServlet", &controllers.MonitorController{}, "POST:RegisterInfo")
	//http.CfgKernelRouter()
	//http.CfgSystemRouter()
	//http.CfgCpuRouter()
	//http.CfgMemRouter()
	//http.CfgDfRouter()
	//http.CfgNetRouter()
	//http.CfgIORouter()
	beego.Router("/", &controllers.MainController{})
	beego.Router("/TestServlet", &controllers.MainController{}, "POST:RegisterInfo")
}


package controllers

import (
"github.com/astaxie/beego"
	"monitor/models"
	"math/rand"
	"fmt"
)

type MonitorController struct {
	beego.Controller
}

func (c *MonitorController) Get() {
	//c.Data["CpuData"] = models.GetCPUData()
	c.Data["Total"] = rand.Int31n(100)
	c.Data["FreeNum"] = rand.Int31n(200)
	c.Data["UsedNum"] = rand.Int31n(200)
	asd := models.MemInfo{123,313,22,}
	c.Data["Memdata"] = asd

	c.TplName = "monitor.html"
}


func (c *MonitorController) RegisterInfo() {
	c.Data["json"] = map[string]interface{}{"name": 222, "num": 1111}

	c.ServeJSON()

	return


}

        $.ajax({
            type : "post",
            async : true,            //异步请求(同步请求将会锁住浏览器,用户其他操作必须等待请求完成才可以执行)
            url : "TestServlet",    //请求发送到TestServlet处
            data : {},
            dataType : "json",        //返回数据形式为json
            success : function(result) {
                console.log(result.num)
                number = result.num
                console.log(number)
            },
            error : function(errorMsg) {
                //请求失败时执行该函数
                alert("图表请求数据失败!");
                myChart.hideLoading();
            }
        });

也可以通过下面这种方式实现,可以传递数组格式的json数据


func (c *MainController) RegisterInfo() {
	c.Data["json"]= `[{"name":"cxh","sex":"man"},{"name":"cxh1","sex":"man1"}]`

	c.ServeJSON()

}

        type : "post",
        async : true,            //异步请求(同步请求将会锁住浏览器,用户其他操作必须等待请求完成才可以执行)
        url : "TestServlet",    //请求发送到TestServlet处
        data : {},
        dataType : "json",        //返回数据形式为json
        success : function(result) {
            console.log("11111111111111111111111");
            console.log(result);
            var obj = jQuery.parseJSON(result);
            alert(obj[0].name)

            console.log("2222222222222222222")
        },
        error : function(errorMsg) {
            //请求失败时执行该函数
            alert("图表请求数据失败!");
            myChart.hideLoading();
        }
    })


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值