• Get请求使用请求体传递参数会报400异常的问题


    问题描述:
    前端使用Get请求并且使用请求体传递参数,后端使用@RequestBody注解封装参数,这时会出现400的异常信息。
    解决方法:
    1、Get请求不要使用请求体,使用请求体的话用POST请求。(建议,这样才是正常的规范写法)
    2、保留Get请求与请求体,后端也可以用对象来封装请求体中的参数,但是封装对象需要去掉@RequestBody注解,不然会有400异常。

    触发场景:
    这个问题在用Postman去测试后端接口的时候并没有发现,因为这种情况在Postman中请求是合法的。然后在与前端同学联调接口的时候发现了这个问题。说明这种传递参数的方式在浏览器中并不合法。

    原因
    在http规范任何方法都能发送请求实体。他们报文时没有任何区别的,但是在浏览器中,因为XMLHttpRequest规范的限制,浏览器中ajax发送的http请求,get,delete请求不能携带实体。

    参考
    https://blog.csdn.net/qq_34412985/article/details/108407570
    https://blog.csdn.net/qq_40734247/article/details/107058221


    __EOF__

  • 本文作者: Morning Bell
  • 本文链接: https://www.cnblogs.com/MorningBell/p/16640557.html
  • 关于博主: 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。
  • 版权声明: 本博客所有文章除特别声明外,均采用 CC-BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    【手写数字识别】CNN卷积神经网络入门案例
    Oracle数据库下载、安装、卸载
    2022/9/17——基于stm32mp157的按键中断实验
    【RabbitMQ】——死信
    linux下最全curl命令使用方式学习和拓展
    PGA-Net:基于金字塔特征融合与全局上下文注意力网络的自动表面缺陷检测
    小白学java--垃圾回收机制(Garbage Collection)
    RabbitMQ spring boot TTL延时消费
    朴素贝叶斯(基于概率论)
    532. 数组中的 k-diff 数对
  • 原文地址:https://www.cnblogs.com/MorningBell/p/16640557.html