我正在学习在Laravel中创建API。我创建了一个CRUD控制器,我有一个空的存储函数:
public function store(Request $request)
{
dd('store');
}
当我尝试使用Postman发布帖子请求时,我收到了令牌不匹配异常:
"Illuminate\Session\TokenMismatchException">TokenMismatchException in
"/Users/andrei/Desktop/api.dev/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php line 68">VerifyCsrfToken.php line 68
我没有表单放置{{csrf ..}}的post方法。怎么解决这个问题?谢谢!
答案 0 :(得分:1)
如果您使用表单提交,则必须使用{{ csrf_field() }}
,该<input type='hidden' name='_token' value="tokenvalueofcharsans numbers" />
将呈现为{{ csrf_field() }}
。但是,如果您只是发送ajax请求而无法在请求中设置$except
,则必须:
1-在app/Http/Middleware/VerifyCsrfToken
中间件的public void inOrder(BNode root) {
if(root == null) {
return;
}
inOrder(root.left);
System.out.println(root.value);
inOrder(root.right);
}
变量中添加您的网址,从csrf验证中排除您的网址。
2-找到一种方法来验证csrf在此轨道中不受影响。
答案 1 :(得分:1)
对于API,您应该使用$except
中间件中的VerifyCsrfToken
属性将其从CSRF中排除。