Laravel Framework 8.29.0 为什么`$request->all()`无法获得前端传递的json数据

后端打印数据
Laravel Framework 8.29.0 为什么`$request->all()`无法获得前端传递的json数据

postman传递数据

Laravel Framework 8.29.0 为什么`$request->all()`无法获得前端传递的json数据

结果为空?这很奇怪啊 换一种方式 form-data则可以传递数据,以前从来没发生过的事情。

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
CrazyLickingDog
最佳答案

域名调备案了,对不起了大家 辛苦各位 我找了一个小时真的裂开!

file

3年前 评论
讨论数量: 10
CrazyLickingDog

使用$request->getContent()此方法需要改动的太多了,不适用,现在就是找不到原因为什么json无法获取了 从来没遇到过的事情感觉很无奈

3年前 评论
CrazyLickingDog

$code = $request->json('code');此方式也是获取null 以前好好地接收json今天突然崩了

3年前 评论

Headers Content-Type 指定下 application/json 呢

3年前 评论
CrazyLickingDog (楼主) 3年前
widdy (作者) 3年前

我没用过8+,不知道有什么改动,但是仅仅获取content来说,你可以加一个前置中间件

    return $next($this->putIn($request, $request->getContent()));

    protected function putIn(Request $request, string $content)
    {
        $content = json_decode($content, true);
        if ($content)
        {
            foreach ($content as $key => $value)
            {
                $request->merge([$key => $value]);
            }
        }

        return $request;
    }
3年前 评论
CrazyLickingDog (楼主) 3年前
Adachi (作者) 3年前
Adachi (作者) 3年前
CrazyLickingDog (楼主) 3年前
CrazyLickingDog

Headers 也已经添加数据

file

3年前 评论

file
file

file

我的没问题 什么都没改

3年前 评论
CrazyLickingDog (楼主) 3年前

8.30版本测试也没这个问题

3年前 评论
CrazyLickingDog

域名调备案了,对不起了大家 辛苦各位 我找了一个小时真的裂开!

file

3年前 评论

事实上 Laravel 不管是什么类型的 Content-Type 都能获取到数据,但是有一个知识点还是要注意下就是关于 $_POST 获取不到数据的问题~~ 具体的可以看下这篇帖子 stackoverflow.com/questions/889357...

3年前 评论

file

跑去翻了翻源码~~ 这就是 Laravel 的具体处理

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!