laravel报错405响应码,怎么解决?

Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException: The GET method is not supported for this route. Supported methods: POST. in file D:\phpstudy_pro\WWW\wy\vendor\laravel\framework\src\Illuminate\Routing\RouteCollection.php on line 256

报错路由问题,路由请求方式是对的,跑接口请求一段时间后就报错

Route::post('/people_import', 'PeopleController@import')->name('导入');

laravel报错405响应码,怎么解决?

public function collection(Collection $rows)
    {
        $admin = (new BaseService())->getThisAdmin(request()->token);
        unset($rows[0]);
        $images = $this->getImages();
        $file = '';
        $village_id = $admin->village_id;
        $village = VillageList::where('id', $village_id)->first();
        $insertUrl = config('myconfig.domain') . '/api/admin/wuye/addUser';
        foreach ($rows as $row) {
            $check = PeopleList::with('hpds')->where('people_tel', $row[1])->first();
            // 所属房屋,房屋里会包含该房屋所属栋数
            $hpd = HpdList::query()->where('hpd_name', $row[5])->first();
            if (is_null($check)) {
                if (isset($images[$row[2]])) {
                    $up = new UpMyFile();
                    $res = json_decode($up->ToFileOSS($images[$row[2]], '临时'), true);
                    if ($res['code'] == 200) {
                        $file = $res['data'];
                        // 移动人脸
                        $url = config('myconfig.domain') . '/api/admin/wuye/moveface';

                        $res = json_decode(curl($url, [
                            'img' => $file,
                            'name' => $row[1] . $row[0] . '_0',
                            'path' => 'people/' . $village->village_name
                        ]), true);

                        if ($res['code'] == 200) {
                            $file = $res['data'];
                        } else {
                            $file = '';
                        }
                    }
                }

                $arr = [
                    'village_id' => $village_id,
                    'village_name' => $village->village_name,
                    'people_name' => $row[0],
                    'people_tel' => $row[1],
                    'people_type' => $row[3],
                    'people_id_no' => isset($row[4]) ? $row[4] : '',
                    'people_image' => $file,
                    'people_add_time' => date('Y-m-d H:i:s')
                ];

                $people = PeopleList::create($arr);
                if (!is_null($hpd)) {
                    SyncData::dispatch($people, $hpd->id, $hpd->arch_id);
                    // 关联房屋
                    /*$people->hpds()->sync($hpd->id);
                    // 关联栋数
                    $people->archs()->sync($hpd->arch_id);*/
                }
                $insert = $arr;
                $insert['area'] = $village->village_no;
//                AddUser::dispatch($insert, $insertUrl);
            } else {
                $archIds = [];
                $hpdIds = [];
                if (empty($check->toArray()['hpds'])) {
                    SyncData::dispatch($check, $hpd->id, $hpd->arch_id);
                } else {
                    foreach ($check->toArray()['hpds'] as $v) {
                        // 没有该房屋关联
                        if ($row[5] != $v['hpd_name']) {
                            $hpdIds[] = $v['hpd_id']; // 已有房屋的id
                            if (!is_null($hpd)) {
                                $hpdIds[] = $hpd->id; // 新的房屋id
                            }
                            $archIds[] = $v['arch_id']; // 栋数id
                        }
                    }

                    if (!empty($archIds) && !empty($hpdIds)) {
                        SyncData::dispatch($check, $hpdIds, $archIds);
                    }
                }
            }

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

符合当前路由的访问方式是POST,而你用了GET访问方式

2年前 评论

应该是重定向导致的问题 我年前也遇到过这个问题 但想不太起来什么情况了 :joy:

2年前 评论

查看下web服务器的access日志,

看看请求方式的是GET还是POST,

看你的报错日志是GET请求

2年前 评论
王大牛 (楼主) 2年前
王大牛 (楼主) 2年前

你这种情况,应该是有跳转,或者 fallback 路由,访问的请求方式是 GET,所以提示 405,问题并不在你这个 POST 接口。你应该检查一下接口是否有 401404419429 等行为,这些路由的请求方式都是 GET。

如果你排查不到,那应该先把问题暴露出来,先把这个接口的 POST 请求方式改为 ANY,然后再让接口跑一段时间,肯定会暴露问题的,到时候你再解决就好了。

2年前 评论
王大牛 (楼主) 2年前
王大牛 (楼主) 2年前
MArtian (作者) 2年前
王大牛 (楼主) 2年前
王大牛 (楼主) 2年前
王大牛 (楼主) 2年前
MArtian (作者) 2年前
MArtian (作者) 2年前
MArtian (作者) 2年前
王大牛 (楼主) 2年前
MArtian (作者) 2年前
王大牛 (楼主) 2年前
MArtian (作者) 2年前
王大牛 (楼主) 2年前

要不你试下把代码全部注释,只保留打印试试?看你所说50条就出错,这个数量不会有啥问题。

2年前 评论
王大牛 (楼主) 2年前
王大牛 (楼主) 2年前
王大牛 (楼主) 2年前
王大牛 (楼主) 2年前
我爱大可乐 (作者) 2年前
我爱大可乐 (作者) 2年前
王大牛 (楼主) 2年前
我爱大可乐 (作者) 2年前
王大牛 (楼主) 2年前
我爱大可乐 (作者) 2年前
王大牛 (楼主) 2年前
王大牛 (楼主) 2年前
我爱大可乐 (作者) 2年前
王大牛 (楼主) 2年前
我爱大可乐 (作者) 2年前
王大牛 (楼主) 2年前

楼主没太明白评论和你发的主题,报错信息是路由方法错误,你说改成100条队列就好了?

2年前 评论
王大牛 (楼主) 2年前

我明白你意思,你的队列测试是同步吗,里面还有请求吗

2年前 评论
王大牛 (楼主) 2年前

队列超时 把队列执行时间设置旧一点

2年前 评论

问答:laravel8中路由访问时间过长POST请求会被重定向为GET的问题有没有人...
看看这个问答,自己遇到过,就是请求超时,配置一下apache相关配置文件即可

2年前 评论

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