中间件直接 return JSON 串导致异常
在中间件的逻辑使用中,直接return json
public function handle($request, Closure $next)
{
if ($request->age <= 200) {
$arr = [
'code' => 4,
'msg' => 'age <200'
];
return json_encode($arr);//这里是导致异常的根源***
}
return $next($request);
}
}
以上代码描述 备注*** 标注行为问题的根源
导致异常
ErrorException (E_NOTICE)
Trying to get property 'headers' of non-object
报错位置:laravel_5.8\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\VerifyCsrfToken.php
报错位置为以下:*** 位置标注
* Add the CSRF token to the response cookies.
*
* @param \Illuminate\Http\Request $request
* @param \Symfony\Component\HttpFoundation\Response $response
* @return \Symfony\Component\HttpFoundation\Response
*/
protected function addCookieToResponse($request, $response)
{
$config = config('session');
$response->headers->setCookie( //***************//
new Cookie(
'XSRF-TOKEN', $request->session()->token(), $this->availableAt(60 * $config['lifetime']),
$config['path'], $config['domain'], $config['secure'], false, false, $config['same_site'] ?? null
)
);
return $response;
}
推荐文章: