我在Laravel 5.1中使用ajax调用进行身份验证时遇到了问题。它与csrf令牌相关。任何想法?
经过几个小时的研究,我找到了一个解决方案。以下是步骤,希望对您有所帮助。
我们需要添加这个元标签来在javascript中使用csrf标记。
<meta name="csrf-token" content="{{ csrf_token() }}">
然后,ajax调用身份验证。
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.post('/auth/login', {name : username, password : pswd},
function(result){
if (result == 'success'){
closeDefineUserLocation();
} else {
$('.loginErrorText').val('Username or Password was incorrect!');
}
});
在由'auth'路由的控制器中,创建一个名为login的函数。
public function login(Request $request){
$email = $request->input('name');
$password = $request->input('password');
if (Auth::attempt(array('email' => $email, 'password' => $password))){
return 'success';
}
return 'failed';
}
就是这样。