当前位置:网站首页>【go-zero】go-zero 框架踩坑指南 Q&A (持续更新中)
【go-zero】go-zero 框架踩坑指南 Q&A (持续更新中)
2022-08-02 14:26:00 【CTRA王大大】
一、问题汇总
1、field name is not set
【问题描述如下链接】
Q:go-zero大坑之field name is not set错误
【解决方案】
A:这种问题如连接中所示,确实是tag标记问题
- 如果我们使用get请求,参数建议使用 form(tag中使用)
- 如果我们使用post请求,参数建议使用json(tag中使用)
2、JWT 失效导致 CORS问题
【问题描述如下链接】
Q:Jwt expire lead to the Cors error. All route invalid #2163
【解决方案】
A;可以通过配置main方法中请求返回的header进行补齐
临时方案:https://github.com/zeromicro/go-zero/issues/1472
实际代码片段
func main() {
flag.Parse()
var c config.Config
conf.MustLoad(*configFile, &c, conf.UseEnv())
ctx := svc.NewServiceContext(c)
server := rest.MustNewServer(c.RestConf, rest.WithUnauthorizedCallback(func(w http.ResponseWriter, r *http.Request, err error) {
origin := "*"
header := w.Header()
header.Set("Access-Control-Allow-Origin", origin)
header.Set("Access-Control-Allow-Methods", "GET, HEAD, POST, PATCH, PUT, DELETE")
header.Set("Access-Control-Allow-Headers", "Content-Type, Origin, X-CSRF-Token, Authorization, AccessToken, Token, Range")
header.Set("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers")
header.Set("Access-Control-Max-Age", "86400")
httpx.Error(w, xerr.NewEnsumError(xerr.LOGIN_ERROR))
}), rest.WithCors("*"))
defer server.Stop()
handler.RegisterHandlers(server, ctx)
httpx.SetErrorHandler(func(err error) (int, interface{
}) {
switch e := err.(type) {
case *xerr.CodeError:
return http.StatusOK, e.Data()
default:
logx.WithContext(context.Background()).Errorf(e.Error())
return http.StatusOK, xerr.NewEnsumError(xerr.BAD_REQUEST_ERROR).(*xerr.CodeError).Data()
}
})
fmt.Printf("Starting server at %s:%d...\n", c.Host, c.Port)
server.Start()
}
边栏推荐
猜你喜欢
马甲包接入过程记录
DOM - Event Delegate
2022-07-21 第六小组 瞒春 学习笔记
已解决ModuleNotFoundError: No module named‘ pip‘(重新安装pip的两种方式)
XML和注解(Annotation)
Based on the SVM regression forecast 】 【 LibSVM realize the prediction of a characteristic data
2022-07-26 第六小组 瞒春 学习笔记
2022-07-18 第五小组 瞒春 学习笔记
Redis最新6.27安装配置笔记及安装和常用命令快速上手复习指南
CNN鲜花分类
随机推荐
第四章-4.1-最大子数组问题
加点字符就能让qq昵称很酷的神奇代码?
Redis + Caffeine实现多级缓存
解决(An error happened during template parsing (template: “class path resource [templates/...]
职工管理系统(SSM整合)
2022/7/15,我的人生中第一篇博客,不忘初心,砥砺前行!
【数据知多少】一文学懂通过Tushare、AKshare、baostock、Ashare、Pytdx获取股票行情数据(含代码)
一文让你快速写上扫雷游戏!童年的经典游戏,发给你的小女友让你装一波!!
nodemon : 无法加载文件 D:\Program Files\nodejs\node_global\nodemon.ps1
【JS执行机制】
我的第一篇博客
遍历堆 PAT甲级 1155 堆路径
codeforces Linova and Kingdom
[Fault Diagnosis] Weak Fault Diagnosis of Fan Bearing Based on PSO_VMD_MCKD Method
lammps学习(二)联合原子模型聚乙烯拉伸
阅读,是最便宜的高贵
2022-0801 第六小组 瞒春 学习笔记
MATLAB文件操作
Explain in detail how the bit manipulation operators in C language can be used?
初入c语言