由于只知道AJAX要CSRF验证,但是系统从5.4升级到5.5出问题,5.4下一切正常,5.5却出现419错误。
发现js代码里写的全部如下,都是一些配置项,因为5.4版本下都正常也没有多想这些代码,最终还是这里出问题了
"lengthMenu": [
[10, 20, 50, 100, 150, -1],
[10, 20, 50, 100, 150, "All"] // change per page values here
],
"pageLength": 10, // default record count per page
"ajax": {
"url": ajax_url, // ajax source
},
最后在ajax配置项里加上了
"headers": { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }
或者:
headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }
或者从表单获取
headers : {
'X-CSRF-TOKEN': $("input[name='_token']").val()
},
根据实际情况配置,有的是加引号,有的不加引号,
即:
"ajax": {
"url": ajax_url, // ajax source
"headers": { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }
},
一下子,就把419错误解决了。以下是终极解决方案,只要出现laravel出现419错误,就先去检查CSRF,
FORM表单,记得加{{ csrf_field()}}
达维营-前端网