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则可以传递数据,以前从来没发生过的事情。

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
CrazyLickingDog
最佳答案

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

file

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

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

4年前 评论
CrazyLickingDog

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

4年前 评论

Headers Content-Type 指定下 application/json 呢

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

我没用过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;
    }
4年前 评论
CrazyLickingDog (楼主) 4年前
Adachi (作者) 4年前
Adachi (作者) 4年前
CrazyLickingDog (楼主) 4年前
CrazyLickingDog

Headers 也已经添加数据

file

4年前 评论

file
file

file

我的没问题 什么都没改

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

8.30版本测试也没这个问题

4年前 评论
CrazyLickingDog

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

file

4年前 评论

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

4年前 评论

file

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

4年前 评论

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