gpt4 book ai didi

laravel-5 - 中间件返回json错误?

转载 作者:行者123 更新时间:2023-12-02 22:55:51 25 4
gpt4 key购买 nike

我正在构建一个应用程序,并使用 laravel5 作为 webAPI。当webAPI处于维护模式时,我想向应用程序返回一个json错误,并且我将在应用程序中获取状态代码以显示合适的消息。

出于某种原因,我重写了 laravel CheckForMaintenanceMode 并将其注册到内核中。

我写

if ($this->app->isDownForMaintenance()) {
$ip = $request->getClientIp();
$allowIp = "111.222.333.444";
if ($allowIp != $ip) {
return response()->json(['error' => "Maintenance!!"], 503);
}
}
return $next($request);

但我在应用程序端什么也得不到。我无法获取消息、状态......

我在 Controller 中使用了与 return response()->json(['error' => "errormessage"], 422); 相同的代码,我可以得到 message.status ..在应用程序中,但我不能在中间件中做同样的事情。

为什么?怎么办?

最佳答案

这有效:

if ($this->app->isDownForMaintenance()) {
$ip = $request->getClientIp();
$allowIp = "111.222.333.444";
if ($allowIp != $ip) {
return response(['Maintenance'], 503);
}
}
return $next($request);

并且不在内核全局HTTP中间件中注册中间件,而是将其放在路由(api.php)中,例如:

Route::group(['middleware' => 'maintenance'], function(){******}

我真的不知道为什么,但这对我有用。

关于laravel-5 - 中间件返回json错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43087447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com