Laravel自带csrf验证,使用post时千万别忘了这东西!
错误:
1.在form中的post会提示 TokenMismatchException 。
2.在ajax中会提示 500错误。
正确使用:
- 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>
- 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");
}
});
- 从csrf保护中移除url
找到并打开 App\Http\Middleware\VerifyCsrfToken 文件,添加要移除的url。
protected $except = [
‘/hello’,
'myfriends'
];
```