【发布时间】:2021-03-24 21:01:38
【问题描述】:
我是 laravel 的初学者。我使用 laravel Ajax 制作了自定义登录表单。当输入用户名和密码并单击登录按钮时,它成功访问 test.blade.php 页面,但页面显示 404 没有找到到目前为止我在下面附上的尝试。
test.blade.php
<div class="container">
<table width="100%" height="100%" border="0" cellspacing="0" align="center">
<tr>
<td align="center" valign="middle">
<table class="table-bordered" width="350" border="0" cellpadding="3" cellspacing="3" bgcolor="#FFFFFF">
<form name="frm_login" id="frm_login">
@csrf
<tr>
<td height="25" colspan="2" align="left" valign="middle" bgcolor="#FF9900" class="style2">
<div align="center">
<strong>Login</strong>
</div>
</td>
</tr>
<tr>
<div id="err" style="color: red">
</div>
</tr>
<tr>
<td width="118" align="left" valign="middle" class="style1">Username</td>
<td width="118" align="left" valign="middle" class="style1">
<input type="text" class="form-control" size="10px" id="username" placeholder="Username" name="username">
</td>
</tr>
<tr>
<td width="118" align="left" valign="middle" class="style1">Password</td>
<td width="118" align="left" valign="middle" class="style1">
<input type="password" class="form-control" size="10px" id="password" placeholder="password" name="password">
</td>
</tr>
<tr>
<td colspan="2" align="right" valign="middle" class="style1">
<button type="button" class="btn btn-primary" onclick="login()">Sign In</button>
<button type="button" class="btn btn-warning" onclick="reset()">Reset</button>
</td>
</tr>
</form>
</table>
</td>
</tr>
</table>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
<script src="//cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
<script>
function login()
{
if($('#username').val() == "")
{
$('#username').parent('td').addClass('has-error');
return false;
}
else if($('#password').val() == "")
{
$('#password').parent('td').addClass('has-error');
return false;
}
else if($('#utype').val() == "")
{
$('#utype').parent('td').addClass('has-error');
return false;
}
var data = $("#frm_login").serialize();
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
type : 'POST',
url: '{{ route('testlogin.check') }}',
data : data,
success : function(response)
{
console.log(response);
if(response == 1)
{
window.location.replace('test.blade.php');
}
else if(response == 3)
{
$("#err").hide().html("Username or Password or Role Incorrect. Please Check").fadeIn('slow');
}
}
});
}
</script>
testContoller
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class TestloginController extends Controller
{
public function index()
{
return view('testlogin');
}
public function check(Request $request)
{
$user = $request->username;
$pass = $request->password;
if (auth()->attempt(array('name' => $user, 'password' => $pass)))
{
return response()->json([ [1] ]);
}
else
{
return response()->json([ [3] ]);
}
}
public function logout(Request $request)
{
Auth::logout();
$request->session()->flush();
return redirect()->route('student.login');
}
}
路线
Route::get('/test','TestloginController@index');
Route::post('/test/check','TestloginController@check')->name('testlogin.check');
Route::get('/test','TestloginController@index')->name('testlogin.login');
【问题讨论】:
-
是的。我是 laravel 的 ajax 新手
-
ajax请求是否正确
-
您需要在成功回调响应中进行比较 == "success"
-
是的,我从我的核心 php.ini 复制了这段代码。我不知道如何在 larvel 控制器中进行比较,请帮忙
-
返回响应()->json('1');喜欢怎么写和查