中间件直接 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;
    }
                        
                        
                                            
          
                    
                    
          
          
                关于 LearnKu
              
                    
                    
                    
 
推荐文章: