php – 为什么Laravel Api在POST和PUT方法上返回419状态代码?
发布时间:2020-12-14 19:38:10 所属栏目:大数据 来源:网络整理
导读:我试图通过使用laravel创建Restful api并使用php artisan make:controller RestController创建我的控制器,这是我的控制器代码: ?phpnamespace AppHttpControllers;use IlluminateHttpRequest;class RestController extends Controller{ private $arr =
我试图通过使用laravel创建Restful api并使用php artisan make:controller RestController创建我的控制器,这是我的控制器代码:
<?php namespace AppHttpControllers; use IlluminateHttpRequest; class RestController extends Controller { private $arr = array( array("name"=>"jon","family"=>"doe"),array("name"=>"jhon","family" => "doue") ); public function index(){ return json_encode($this->arr); } public function store(Request $request){ return "oops!!"; } public function update (Request $request,$id){ return "test"; } } 我添加这行代码来在routes / web.php文件中创建此路由 Route::resource('person','RestController'); 当我尝试在GET / person上测试这个api它工作正常但是在帖子上并且把我从laravel获得419状态代码.
如果你正在开发rest apis,最好不要添加令牌.如果你使用的是5.4或5.5,你可以使用api.php而不是web.php.在api.php你不需要对帖子请求进行令牌验证.
如果您使用的是web.php,那么您就会激活令牌.这是官方文档 从CSRF保护中排除URI 有时您可能希望从CSRF保护中排除一组URI.例如,如果您使用Stripe处理付款并使用其webhook系统,则需要从CSRF保护中排除Stripe webhook处理程序路由,因为Stripe将不知道要向您的路由发送什么CSRF令牌. 通常,您应将这些类型的路由放在RouteServiceProvider应用于routes / web.php文件中所有路由的Web中间件组之外.但是,您也可以通过将其URI添加到VerifyCsrfToken中间件的$except属性来排除路由: <?php namespace AppHttpMiddleware; use IlluminateFoundationHttpMiddlewareVerifyCsrfToken as BaseVerifier; class VerifyCsrfToken extends BaseVerifier { /** * The URIs that should be excluded from CSRF verification. * * @var array */ protected $except = [ 'stripe/*',]; } 以供参考 https://laravel.com/docs/5.5/csrf (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |