因为:laravel 默认开启了 csrf验证
下面有几种方法解决:
1.
<form id="editForm">
{{ csrf_field() }}
....
2.
<form id="editForm">
<input type="hidden" name="_token" value="{csrf_token()}"/>
....
注意 :其实第一和第二是一码事 第一种方式只不过 laravel给你封装了一下。
上面都是针对form表单提交
下面看一下不是表单的形式提交数据
3.
$.ajax({
type: "post",
url: "{{ route('edit_msg') }}",
dataType: "json",
data: {'msg':newMsg, 'type':str, '_token': "{!! csrf_token() !!}"},
error:function(msg){ //处理出错的信息
var errormessage="再试一次";
$(".loginerror").html(errormessage);
},
success: function(data) {
}
});
注意后面的data提交的数据 _token字段。
4.我们也可以在ajax请求头添加X-CSRF-Token
<meta name="_token" content="{!! csrf_token() !!}"/>
$.ajax({
type: "post",
url: "{{ route('edit_msg') }}",
dataType: "json",
headers: { 'X-CSRF-Token' : $('meta[name=_token]').attr('content') },
data: {'msg':newMsg, 'type':str},
error:function(msg){ //处理出错的信息
var errormessage="再试一次";
$(".loginerror").html(errormessage);
},
success: function(data) {
}
});