lzqnm158 2023-07-03 16:46 采纳率: 50%
浏览 18
已结题

gin框架 Cros跨域后的post参数无法获取和json

跨域后使用gin框架获取请求的post参数
只有

    s,_ :=ctx.GetRawData()
    fmt.Println(string(s))

能获取到请求参数

id=10&type=5&sign=7162ecee5275eaf426fc3df9043550e4

但是无法转换成map 或者结构体

有没有其他获取参数的方法,或者转换的方法

  • 写回答

1条回答 默认 最新

  • 自在猫先生 2023-07-03 17:49
    关注
    
    源于chatGPT仅供参考
    在使用 Gin 框架处理跨域请求后,您可以通过以下方法来获取 POST 参数并将其转换为 map 或结构体:
    1. 使用 `ctx.PostForm` 方法:
    id := ctx.PostForm("id")
    type := ctx.PostForm("type")
    sign := ctx.PostForm("sign")
    2. 使用 `ctx.ShouldBind` 方法将参数绑定到结构体:
    type YourStruct struct {
        ID   int    `form:"id"`
        Type int    `form:"type"`
        Sign string `form:"sign"`
    }
    
    var data YourStruct
    if err := ctx.ShouldBind(&data); err == nil {
        // 参数绑定成功,可以使用 data 结构体中的值
    } else {
        // 参数绑定失败,处理错误
    }
    
    3. 使用 `json.Unmarshal` 方法将请求体转换为结构体:
    type YourStruct struct {
        ID   int    `json:"id"`
        Type int    `json:"type"`
        Sign string `json:"sign"`
    }
    
    var data YourStruct
    if err := json.Unmarshal(s, &data); err != nil {
        // 转换失败,处理错误
    } else {
        // 转换成功,可以使用 data 结构体中的值
    }
    
    请注意,以上代码示例假设您已经获得了请求体的原始数据,并将其存储在变量 `s` 中。您可以根据实际情况进行调整。
    
    如果以上方法仍然无法获取参数或转换数据,请提供更多详细信息和示例代码,以便我更准确地帮助您解决问题。
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月4日
  • 修改了问题 7月3日
  • 创建了问题 7月3日

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题