zoukankan      html  css  js  c++  java
  • Laravel提交POST请求报错

    提交POST请求出现如下错误:

    1 The page has expired due to inactivity
    2 
    3 Please refresh and try again

    这是由于在Laravel框架中有此要求:

    任何指向 web 中 POST, PUT 或 DELETE 路由的 HTML 表单请求都应该包含一个 CSRF 令牌(CSRF token),否则,这个请求将会被拒绝。

    解决办法  1: 加上 CSRF token

    1 <form method="POST" action="/profile">
    2 {{ csrf_field() }}
    3     ...
    4 </form>

    也可以最新写法

    1 <form method="POST" action="/profile">
    2     @csrf
    3     ...
    4 </form>

    如果是AJAX提交:

    在页面头部加上csrf-token:

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

    提交headers中增加 X-CSRF-TOKEN:

    1 $.ajaxSetup({
    2     headers: {
    3         'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    4     }
    5 });

    解决办法  2: 移除 CSRF token

    也可以在指定页面移除CSRF保护:

    /app/Http/Middleware/VerifyCsrfToken.php

     1 <?php
     2 
     3 namespace AppHttpMiddleware;
     4 
     5 use IlluminateFoundationHttpMiddlewareVerifyCsrfToken as Middleware;
     6 
     7 class VerifyCsrfToken extends Middleware
     8 {
     9     /**
    10      * The URIs that should be excluded from CSRF verification.
    11      *
    12      * @var array
    13      */
    14     protected $except = [
    15         'stripe/*',
    16         'http://example.com/foo/bar',
    17         'http://example.com/foo/*',
    18     ];
    19 }
  • 相关阅读:
    analysis of algorithms
    Measurement of Reflected Radiation
    lecture 5
    lecture 3
    字符串
    Emission of Radiation辐射发射
    Electromagnetic Radiation(EMR) 电磁辐射
    Linux FTP服务器-VSFTPD虚拟用户配置
    jenkins notes
    python nose使用记录
  • 原文地址:https://www.cnblogs.com/cxx8181602/p/11021817.html
Copyright © 2011-2022 走看看