Laravel post使用

2017-06-10  本文已影响0人  QingLinger

Laravel自带csrf验证,使用post时千万别忘了这东西!

错误:
1.在form中的post会提示 TokenMismatchException


2.在ajax中会提示 500错误。

正确使用:

  1. form post
    只需要在form内加上 <input type="hidden" name="_token" value="{{ csrf_token() }}">即可。
<form action="/hello" method="post">
        <input type="submit" value="submit">
        {{--表单csrf验证--}}
        <input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>
  1. ajax post
    提交前加上一个csrf头。
    ajax post例子参考[jquery ajax POST 例子详解]。(http://www.cnblogs.com/bestsaler/archive/2010/04/08/1835508.html)
//html
<meta name="csrf-token" content="{{ csrf_token() }}">
//js
var url = 'http://' + window.location.host + '/hello';
$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});
$.ajax({
    type: 'post',
    url: addCommendURL,
    success :function (data) {
        console.log("good");
    }
});
  1. 从csrf保护中移除url
    找到并打开 App\Http\Middleware\VerifyCsrfToken 文件,添加要移除的url。
protected $except = [
    ‘/hello’,
    'myfriends'
];
```
上一篇下一篇

猜你喜欢

热点阅读