因为laravel以post形式提交数据时候需要加{{csrf_field()}}防止跨站攻击,下面通过本文给大家分享lavarel框架中使用ajax提交表单的方法,一起看看吧
laravel简介:
Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。“开发”应当是一项富有创造性的脑力劳动,而不是枯燥的“垒代码“。
开门见山,因为laravel以post形式提交数据时候需要加{{csrf_field()}}
防止跨站攻击,所以当你用ajax提交表单时候自然也要加。
在网上看了很多的解决方式,我是用下面这种方法解决的:
1,首先在模板里面加上一个meta :
1 | <meta name= "_token" content= "{{ csrf_token() }}" />
|
Salin selepas log masuk
2,然后在ajax方法里面加
1 2 3 | headers: {
'X-CSRF-TOKEN': $('meta[name= "_token" ]').attr('content')
},
|
Salin selepas log masuk
这是ajax的方法,发现了很好用的jquery的函数,$().serialize()和$().serializeArray(),代码中我用的是后者,可以获取form表单中的数据,并且能直接通过ajax传输,简直太神奇了!!!(孤陋寡闻让大家见笑了)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | $(form[1]).submit( function (event){
var data = $(form[1]).serializeArray();
$.ajax({
type:'post',
url:'/basic',
data:data,
headers: {
'X-CSRF-TOKEN': $('meta[name= "_token" ]').attr('content')
},
success: function (msg){
if (msg) {
$('.basicEdit').hide();
$('.basicShow').show();
$('.basicShow span').html(data[1].value+' | '+data[2].value+' | '+data[3].value+' | '+data[4].value+'<br>'+data[5].value+' | '+data[6].value+' | '+data[7].value);
}
},
});
return false;
});
|
Salin selepas log masuk
3然后在控制器方法中获取数据了,直接$req->你的表单name就行了.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public function basic(Request $req ){
$uid = Auth::user()->uid;
$inf = Info::where('uid', $uid )->first();
$inf ->name = $req ->name;
$inf ->gender = $req ->gender;
$inf ->topDegre = $req ->topDegre;
$inf ->workyear = $req ->workyear;
$inf ->tel = $req ->tel;
$inf ->email = $req ->email;
return $inf ->save()? "ok" : "fail" ;
}
|
Salin selepas log masuk
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
Ajax提交参数的值中带有html标签不能提交成功的解决办法
Ajax post请求跳转页面
Ajax打开新窗口被浏览器拦截的两种解决办法
Atas ialah kandungan terperinci Lavarel框架中使用ajax提交表单的方法_AJAX相关. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!