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

文章目录

    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 的示例代码就是坑爹。

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式