$page.props.csrf_token 未定义(惯性 js)
$page.props.csrf_token is undefiend (inertiajs)
我想将用户注销到非惯性 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
回应。
当我 console.log("this.$page.props.csrf_token")
它显示 undefined
.
我该怎么办?
您需要在您的“
最简单的方法是使用 csrf_field
:
<form>
{{ @csrf_field() }}
<!-- other fields -->
</form>
对于需要找到一种方法将 csrf 令牌传递给惯性的任何其他人,我有一个具体的用例是需要一个导出 csv 文件按钮来发送实际的 non-AJAX HTTP 请求- 所以不能依赖 axios 的自动 csrf 功能 - 所以我可以 return 文件下载.. 我所做的是在我填充 $page.props 的控制器中,你可以将属性设置为值方法 'csrf_token()'.. 所以 -
Inertia::render('VueComponent', ['attribute_name' => 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
回应。
当我 console.log("this.$page.props.csrf_token")
它显示 undefined
.
我该怎么办?
您需要在您的“
最简单的方法是使用 csrf_field
:
<form>
{{ @csrf_field() }}
<!-- other fields -->
</form>
对于需要找到一种方法将 csrf 令牌传递给惯性的任何其他人,我有一个具体的用例是需要一个导出 csv 文件按钮来发送实际的 non-AJAX HTTP 请求- 所以不能依赖 axios 的自动 csrf 功能 - 所以我可以 return 文件下载.. 我所做的是在我填充 $page.props 的控制器中,你可以将属性设置为值方法 'csrf_token()'.. 所以 -
Inertia::render('VueComponent', ['attribute_name' => csrf_token() ]);