beego中发送的请求和路由无法匹配

lhlt138 · · 4469 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

新手刚刚接触beego,使用beegoadmin作为后台管理系统; 问题:在beegoadmin中新增Node节点,router.go中新增路由,页面层使用easyui发送请求调用,添加AddDocotor的Post请求可以收到但是无法保存表单内容,其他的请求不论用put,post,get还是delete,响应的结果都是404,还请各位前辈指教,谢谢。 解决办法:路由大小写和请求的url需要严格匹配 ```go 路由部分: beego.Router("/rbac/doctor/AddDoctor", &controllers.DoctorsController{}, "*:Post") beego.Router("/rbac/Doctor/UpdateDoctor", &controllers.DoctorsController{}, "*:UpdateDoctor") beego.Router("/rbac/Doctor/DelDoctor", &controllers.DoctorsController{}, "*:DelDoctor") beego.Router("/rbac/Doctor/AddAndEdit", &controllers.DoctorsController{}, "*:AddAndEdit") 对应的controller中代码如下: // @Title Post // @Description create Doctors // @Param body body models.Doctors true "body for Doctors content" // @Success 200 {int} models.Doctors.Id // @Failure 403 body is empty // @router / [post] func (c *DoctorsController) Post() { var v models.Doctors json.Unmarshal(c.Ctx.Input.RequestBody, &v) value := &v fmt.Println(value) if id, err := models.AddDoctors(&v); err == nil { c.Data["json"] = map[string]string{"id": id} } else { c.Data["json"] = err.Error() } c.ServeJson() } // beego admin update func (c *DoctorsController) UpdateDoctor() { fmt.Println("--------------UpdateDoctor--------------"); d := models.Doctors{} if err := c.ParseForm(&d); err != nil { //handle error c.Rsp(false, err.Error()) return } id, err := models.UpdateDoctor(&d) if err == nil && id > 0 { c.Rsp(true, "Success") return } else { c.Rsp(false, err.Error()) return } } // beego admin delete func (c *DoctorsController) DelDoctor() { idStr := c.Ctx.Input.Params[":id"] fmt.Println(idStr); if err := models.DeleteDoctors(idStr); err == nil { c.Data["json"] = "OK" } else { c.Data["json"] = err.Error() } c.ServeJson() } func (this *DoctorsController) AddAndEdit() { d := models.Doctors{} if err := this.ParseForm(&d); err != nil { this.Rsp(false, err.Error()) return } var err error var id int64 idStr := this.Ctx.Input.Params[":id"] if idStr != "" { id, err = models.UpdateDoctor(&d) } else { idStr, err = models.AddDoctors(&d) } if err == nil && id > 0 { this.Rsp(true, "Success") return } else { this.Rsp(false, err.Error()) return } } 页面请求调用代码如下: //删除请求 vac.ajax('/doctor/'+row.Id, {Id:row.Id}, 'Delete', function(r){ if(r.status){ $("#datagrid").datagrid('reload'); }else{ vac.alert(r.info); } }) //添加请求 $("#form1").form('submit',{ url:URL+'/AddDoctor', onSubmit:function(){ return $("#form1").form('validate'); }, success:function(r){ var r = $.parseJSON( r ); console.log(r); if(r.status){ $("#dialog").dialog("close"); $("#datagrid").datagrid('reload'); }else{ vac.alert(r.info); } } //修改请求 vac.ajax(URL+'/AddAndEdit', changes, 'POST', function(r){ if(!r.status){ vac.alert(r.info); }else{ $("#datagrid").datagrid("reload"); } }) ```

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4469 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传