我正在登录页面上点击事件调用jquery函数。从那里我调用$ ajax函数。这个$ ajax函数应该调用控制器并处理函数并返回响应。我使用routes.php连接了它。在运行应用程序时,我收到“请求页面未找到404错误”的错误。我认为路由存在一些问题。有人帮助我解决这个问题。提前谢谢。
routes.php如下
Route::post('signin', 'LoginController@signin');
click事件的Jquery函数位于login_register.js文件中
$("#form-login").on("submit",function(e){
e.preventDefault();
var log_password = "";
var log_name = $("#log_username").val();
var password = $("#log_password").val();
if(password.trim() !== "")
{
log_password = md5(password);
}
$(".loginmessage").html('');
$(".login").attr("disabled",true);
$("#spin_signin").addClass('show');
var req = new Request();
req.data =
{
"email":log_name,
"userpassword":log_password
};
req.url = "signin";
RequestHandler(req,processlogin);
});
ajax调用是在jquery.ajax.js文件中。我将类型命名为POST,数据类型为JSON
function RequestHandler(request,response,resdata){
$=jQuery.noConflict();
var domain = "http://localhost/laravel_login/public/";
var tempurl = domain+request.url;
if(request.isfulluri){
tempurl = request.url;
}
$.ajax({
type: request.type,
url: tempurl,
data: request.data,
datatype:request.datatype,
success: function(data){
if(resdata != null && resdata != '')
response(data,resdata);
else
response(data);
},
error: function(err){
if(err.responseText == null || err.responseText == ""){
alert("Error: Check your internet connection");
}
else{
alert("Error:"+err.responseText);
}
}
});
我的控制器类(LoginController.php)包含
public function signin(){
$response = array();
$useremail = $this->input->post('email');
$userpassword = $this->input->post('userpassword');
if($useremail == '' || $userpassword == ''){
$response['iserror'] = TRUE;
$response['message'] = 'Please fill all the fields';
echo json_encode($response);
return;
}
else{
$result = $this->UserAuthenticate->loginUser($useremail,$userpassword);
echo json_encode($result);
return;
}
}
答案 0 :(得分:0)
请确保为您的完整路径定义了路线:
laravel_login/public/signin
您可以使用php artisan route:list --path=signin
查看您的路线是否已注册。
另外,在您的控制器方法中,而不是
echo json_encode($result);
return;
我会用
return response()->json($result);
因为这会自动为您设置正确的HTTP标头。这样,传递给javascript回调函数的变量将是一个Javascript对象,无需额外的解析。