SpringBoot 接收不到 post 请求数据与接收 post 请求数据

文章归档:https://www.yuque.com/u27599042/coding_star/xwrknb7qyhqgdt10

SpringBoot 接收不到 post 请求数据

  1. 接收 post 请求数据,控制器方法参数需要使用 RequestParam 注解修饰
java 复制代码
public BaseResponseResult<Object> getMailCode(
    @RequestParam("mail") String mail
) {}
  1. 前端发送 post 请求时,请求数据类型(Content-Type)应该为 application/x-www-form-urlencoded

默认情况下,使用 axios.post() 发送 post 请求,请求的数据类型为 application/json

使用 axios 发送 post 请求,且请求数据类型为 application/x-www-form-urlencoded

javascript 复制代码
/**
 * 发送 post 请求,请求数据类型(Content-Type)为 application/x-www-form-urlencoded
 * 
 * @param url 请求资源路径
 * @param data 请求数据
 * @return {Promise<axios.AxiosResponse<any>>}
 */
export function postContentTypeFormUrlencoded(url, data) {
    return request.post(
        url,
        data,
        {
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded'
            }
        }
    )
}
  1. 如果前后端 post 数据交互,需要使用 json 格式的数据,那么前端使用 axios.post() 发送 post 请求,后端接收数据时最好使用自定义类对象形式的参数,且参数使用 RequestBody 注解修饰
java 复制代码
public BaseResponseResult<Object> loginByMail(
            @RequestBody
            UserLoginInfoVo userLoginInfoVo
    ) {}
java 复制代码
/**
 * 用于封装接收客户端传递到服务端的用户登录信息
 */
@AllArgsConstructor
@NoArgsConstructor
@Data
@Getter
@Setter
public class UserLoginInfoVo {

    /**
     * 用户通过密码登录时使用的用户名/账号/电子邮箱/手机号
     */
    private String account;

    /**
     * 用户通过邮箱登录时使用的电子邮箱。
     * 需要使用 RSA 加密算法进行解密
     */
    private String mail;

    /**
     * 用户通过手机登录时使用的手机号。
     * 需要使用 RSA 加密算法进行解密
     */
    private String telephone;

    /**
     * 用户登录时输入的验证码。
     * 需要使用 RSA 加密算法进行解密
     */
    private String code;

    /**
     * 用户通过密码登录输入的密码。
     * 需要使用 RSA 加密算法进行解密
     */
    private String password;

}
相关推荐
沙蒿同学5 小时前
不引 Ghostscript:我用纯 Go 给 PDF 做了一场「压缩手术」
前端·后端·github
缓慢更新6 小时前
审批的加签与会签:多人意见怎么合
android·java·数据库·低代码·rxjava
前进的李工7 小时前
飞书企业知识库设计+后端高频八股
数据库·redis·后端·mysql·性能优化·飞书·rag
yuniko-n7 小时前
【JUC】volatile 非原子性深入解析
java
sun_weitao7 小时前
极简版 MCP 工具实现方案
java·linux·服务器
金銀銅鐵8 小时前
[Java] 展示增删元素时 LinkedList 的内部变化
java·后端·ai编程
布吉岛的石头9 小时前
Java 程序员第 50 阶段3:数据工程:预训练语料清洗与去重
java·开发语言·人工智能·深度学习·transformer
大文说跨境9 小时前
防关联浏览器的指纹覆盖到什么程度:六类参数的实测与自检方法
java·指纹浏览器·tiktok运营
武子康9 小时前
Vercel Cache Reason:相同 MISS,怎样决定下一步查什么
人工智能·后端·agent
Carol06309 小时前
上肢及肩肘关节
java·服务器·数据库