我只是想用ajax向我的laravel的控制器发送一个POST请求..它完全是第一次工作,例如。如果我填写正确的用户信息然后它重定向到我定义的路线,但如果我填写错误的信息,然后我得到我定义的错误信息,现在主要部分是填写错误的信息和消息(错误的用户名和密码)出现。然后我重试正确的信息但没有任何反应我不知道为什么..请帮助我,我的ajax代码是
$(document).ready(function(){
function login(){
var CSRF_TOKEN = $('meta[name="csrf-token"]').attr('content');
var link = 'http://localhost/tute/ajax_laravel/public/';
var values = {email : $("#email").val() , password : $("#password").val() , _token: CSRF_TOKEN};
$.ajaxSetup({
header:$('meta[name="_token"]').attr('content')
})
$.ajax({
url : link+'login',
type : 'POST',
data : values,
success : function(data){
if (data == 'false'){
$('.error').show();
}
}
});
}
$('.btn-success').click(function(e){
e.preventDefault();
login();
});
});
我的HTML代码是
<div class="hpanel">
<div class="panel-body">
<div class="form-group">
<input type="hidden" name="_token" value="{{csrf_token()}}">
<label class="control-label" for="email">Email</label>
<input type="text" placeholder="example@gmail.com" title="Please enter you email"
required="" value="" name="email" id="email" class="form-control">
<span class="help-block small">Your unique Email to app</span>
</div>
<div class="form-group">
<label class="control-label" for="password">Password</label>
<input type="password" title="Please enter your password" placeholder="******"
required="" value="" name="password" id="password" class="form-control">
<span class="help-block small">Your strong password</span>
</div>
<div class="error" style="display:none">
<p style="color:red">Wrong Email or Password</p>
</div>
<button class="btn btn-success btn-block">Login</button>
<a class="btn btn-default btn-block" href="#">Register</a>
</div>
</div>
答案 0 :(得分:0)
我认为CSRF
令牌存在问题。如果您确实想要使用ajax
登录,则可以通过CSRF
Illuminate\Foundation\Http\Middleware\VerifyCsrfToken
停用Illuminate\Foundation\Http\Middleware\VerifyCsrfToken
验证
protected $middleware = [
'Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode',
'Illuminate\Cookie\Middleware\EncryptCookies',
'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
'Illuminate\Session\Middleware\StartSession',
'Illuminate\View\Middleware\ShareErrorsFromSession',
'Illuminate\Foundation\Http\Middleware\VerifyCsrfToken',
];
您可以通过在login.blade.php
<script>
function newToken(){
return '{{csrf_token()}}';
}
</script>
在你的jquery文件中调用这个函数,用你的ajax请求附加新生成的标记。