page.props美元.Csrf_token是未定义的(惰性)



我想注销用户到非惯性url。所以我必须将csrf token传递给post方法的表单。


<!-- Authentication -->
<form
method="POST"
:action="route('logout')"
>
<input type="hidden" name="_token" :value="$page.props.csrf_token">
<jet-dropdown-link
colors="text-red-700 focus:bg-gray-200 hover:bg-gray-200"
as="button"
>
logout
</jet-dropdown-link>
</form>

但是它给了我一个419 page expired响应。

当i为console.log("this.$page.props.csrf_token")时显示为undefined

我该怎么办?

这是我的错。我应该仔细阅读文档的。

这样你可以与惯性中间件共享令牌。

namespace AppHttpMiddleware;
class HandleInertiaRequests extends Middleware
{
public function share(Request $request)
{
return array_merge(parent::share($request), [
'csrf' => csrf_token(),
]);
}
}

,然后在惯性分量中通过

访问它
this.$page.props.csrf

来源

你需要在你的" " form"并添加

<meta name="csrf-token" content="{{ csrf_token() }}">

在你的布局

最简单的方法是使用csrf_field:

<form>
{{ @csrf_field() }}
<!-- other fields -->
</form>    

对于任何需要找到一种方法将csrf令牌传递给惯性的人,我特别有一个用例是需要有一个导出csv文件按钮来发送实际的非ajax HTTP请求-因此不能依赖axios的自动csrf功能-所以我可以返回文件下载。我所做的是在控制器中填充$page。Props,你可以将属性设置为方法'csrf_token()'的值。所以- - - - - -

惯性::渲染('VueComponent', ['attribute_name' =>

csrf_token ()));

相关内容

  • 没有找到相关文章

最新更新