javascript - laravel , ajax 使用post方式传输,后台获取登陆用户id时报错500,使用get方式正常.
本文介绍了javascript - laravel , ajax 使用post方式传输,后台获取登陆用户id时报错500,使用get方式正常.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
laravel框架 , 前台使用ajax提交表单数据,
当type: 'get'时,后台可以通过$request->user()->id 获取到用户id,
但是
当type: 'post'时,后台通过$request->user()->id 报错500.
routes.php
Route::group(['middleware' => 'web'], function () {
Route::auth();
//这个url使用post报错
Route::get('/index/folder', "IndexController@folder");
});
controllder
public function folder(Request $request, FoldersRepository $FoldersRep) {
return response($request->user()->id);
}
js
$.ajax({
type: 'get',
url: "/index/folder",
data: formData,
success: function (data) {
console.log(data);
debugger
请问这是怎么回事,如何解决?
解决方案
列举laravel 500错误的原因:
1、使用了错误的路由
你这个是路由只能接受get请求;
2、CSRF令牌
csrf令牌是必须携带的;
//1、你可以在heade头中设置
<meta name="csrf_token" id="token" content="{{csrf_token()}}">
//2、你可以在表单中设置
<input type="hidden" name="_token" value="{{csrf_token()}}">
//3、你可以在ajax数据中直接使用
$.ajax({
url: "route",
method: "POST",
data: { _token : {{csrf_token()}}},
dataType: "json"
});
//4、使用 laravelcollective/html package 生产表单,自动生产csrf令牌
3、目录权限
storage目录
sudo chmod -R 777 YourPath/storage
这篇关于javascript - laravel , ajax 使用post方式传输,后台获取登陆用户id时报错500,使用get方式正常.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文