【问题标题】:“How to fix ‘Trying to get property 'headers' of non-object” VerifyCsrfToken“如何修复'试图获取非对象的属性'标题'” VerifyCsrfToken
【发布时间】:2019-10-02 12:47:12
【问题描述】:

我运行我的项目并收到此错误:

试图获取非对象的属性“标题” "\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\VerifyCsrfToken.php"

在这个函数中

    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;
    }

【问题讨论】:

    标签: php laravel laravel-5


    【解决方案1】:

    在这种情况下,您实际上将什么作为 $response 参数传递?

    我认为需要更多详细信息才能找出导致错误的具体原因,但我可以尝试给出提示:

    由于某种原因,您在 $response 位置传递的内容不会被识别为您案例中的对象实例。 您可以尝试像这样实例化它:

    $response = Response::make($contents, $statusCode);
    
    $response->header('Content-Type', $value);
    

    然后将其传递给您的函数。

    也许您可以根据这个假设尝试追溯,在您的项目中,链到底在哪里中断?

    我的意思是,在你的情况下,它是你函数中的一个参数,但它怎么知道它继承自 Symfony\Component\HttpFoundation\Response 类?

    也许你应该“输入提示”它 -> 比如在括号中说 Response $response。

    我发现这个链接在这里也是有用的解释。在帖子中他们谈论的是请求而不是响应,但我认为问题的原理是相关的:

    https://www.quora.com/What-does-Request-request-mean-in-Laravel

    您可以查看文档:

    https://laravel.com/docs/4.2/responses

    【讨论】:

      猜你喜欢
      • 2019-09-22
      • 2019-11-16
      • 1970-01-01
      • 2021-09-21
      • 2016-07-16
      • 2018-06-27
      • 1970-01-01
      • 2014-12-09
      相关资源
      最近更新 更多