使用 antd pro request post 数据到 golang gin 报错 400 EOF

发布时间: 2021-05-14 16:33:00 作者: 大象笔记

golang gin 的报 400 错误

	var article models.Article
	if err := c.ShouldBindJSON(&article); err != nil {
		log.Println(err)
		c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
		return
	}

err 显示 EOF。查了一下,当 post 的数据是空时,会报这个错误。

antd pro umi request 的写法

起初是参考示例里的写法:

export async function addRule(options?: { [key: string]: any }) {
  return request<API.RuleListItem>('/api/rule', {
    method: 'POST',
    ...(options || {}),
  });
}

但是查看 chrome 网络,发现请求的 content length 是 0,说明没有发送任何数据。

而参考 umi request 的使用文档,post 数据是应该放到 data 字段里的。

https://github.com/umijs/umi-request/blob/master/README_zh-CN.md

改成下面这种请求方式,就可以在后台 golang gin 解析到数据了。

export async function addArticle(options?: { [key: string]: any }) {
  return request<API.Article>('/api/admin/add-article', {
    method: 'POST',
    data: options,
  });
}

antd pro 的示例代码就是坑爹。

我是一名山东烟台的开发者,联系作者