“如何解决“试图获取非对象的属性'标头”的问题” VerifyCsrfToken

时间:2019-05-15 11:25:51

标签: php laravel laravel-5

我运行我的项目,但出现此错误:

  

试图获取非对象的属性“标头”   “ \ 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;
    }

1 个答案:

答案 0 :(得分:0)

在这种情况下,您实际上是作为$ 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