我是一名 PHP 开发人员,目前正在根据我的任务转向 Laravel 框架,我必须使用 ajax 完成实时表,但我仍然遇到一个错误,即 CSRF 令牌不匹配错误,请帮助我解决我仅发布短代码的错误JAVA脚本<script> function getMessage() { $.ajax({ //var data = {"_token": $('#token').val()}, type:'POST', url:'/getMsg', headers: {'XSRF-TOKEN': $('meta[name="_token"]').attr('content')}, success:function(data) { $("#msg").html(data.msg); } }); } </script>路线路径Route::post('/getMsg','CustomerSearchController@doAjaxTest');控制器代码public function doAjaxTest(){ $msg = "<b>Message over ajax This test is Successful</b>."; return response()->json(array('msg'=> $msg), 200);}HTML代码<center> <input type = "hidden" name = "_token" value = '<?php echo csrf_token(); ?>'> <table> <tr> <td><label>Enter Place Name</label></td> <td><input type="text" class="form-control" id="placename" name="placename" placeholder="Name Of Place"/></td> </tr> <tr> <td> <input type="submit" value="Get Message" onclick="getMessage()" /> </td> </tr> </table> <br> <!-- <div class="panel panel-default table-responsive"> <div id="dataTag"><b>All the Details according to department will be displayed</b></div> </div> --> <div id = 'msg'>This message will be replaced using Ajax. Click the button to replace the message.</div> </center>我不知道为什么当标头包含令牌时它会显示 CSRF 令牌不匹配,一旦解决我就可以进行一些实时操作,请帮忙
3 回答
一只名叫tom的猫
TA贡献1906条经验 获得超3个赞
确保视图头部有元标记:
<meta name="csrf-token" content="{{ csrf_token() }}" />
然后你可以在加载 jQuery 库后初始化一次,添加:
<script type="text/javascript">
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
</script>
尝试使用解决方案
- 3 回答
- 0 关注
- 167 浏览
添加回答
举报
0/150
提交
取消