【问题标题】:Ajax Request in laravel 4laravel 4 中的 Ajax 请求
【发布时间】:2014-08-30 01:59:15
【问题描述】:

我是 laravel 的新手。我正在使用第 4 版,并且正在尝试在我的登录表单中执行 ajax 请求。由于我的登录表单处于引导模式,在表单提交之前,它将使用 ajax 检查输入的密码和用户名是否等于我的数据库中的密码和用户名。然后,如果表单提交,它将仅重新加载页面。 这是我的代码:

js-script.php

 $("#login-submit").submit(function(event) {
  var un = 'input[name="username"]';
  var pw = 'input[name="password-login"]';

   $.ajax({ 
                type: "POST", 
                url: "/login=success",
                data : { 'un' : $(un).val(), 'pw' : $(pw).val() },  
                datatype: "json", 
                success: function(data){  
                    if(data == 0){
                        $('#message-error').show();
                        setTimeout(function() {
                             $('#message-error').hide();
                        }, 5000);
                    }
                    if(data != 0){
                        window.location.reload();
                    }
                }
            });

});

usercontroller.php

// Login User
    public function login(){
        $un = Input::get( 'un' );
        $pw = Input::get( 'pw' );   
        $password = md5($pw);
        if (Auth::attempt(array('username'=>$un, 'password'=>$password))) {
            return Redirect::to('/login=success')->with('message', 'You are now logged in!');
        } else {
            return Redirect::to('users/login')
                ->with('message', 'Your username/password combination was incorrect')
                ->withInput();
        }     

    }

route.php

Route::post('/login=success', 'UserController@login');

我不知道如何访问我的数据库并在我的 ajax 中进行一些查询。

【问题讨论】:

    标签: javascript php jquery ajax laravel-4


    【解决方案1】:

    请求 db 并检查给定的输入。你应该把你的控制器:

    $num = DB::where("username", $username)->where("password", $password)->count();
    
    if ($num != 0)
    {
     // do something
    }
    

    $password 可能是一个散列密码。这取决于你是否使用过 Laravel 的 Auth,然后你会想要使用 Laravel 的 Auth 进行哈希处理:

    $hashedPassword = Hash::make(Input::get('password'));
    

    虽然你可以再次检查它是否使用 Laravel 的哈希:

    if (Hash::check($_POST['password'], $hashedPassword))
    {
        // The passwords match...
    }
    

    如果您的站点的数据库在 Laravel 中运行,那么您的数据库配置是在 Laravel 中设置的,否则您必须在 Laravel 中设置您的数据库配置。为此,您可以查阅 Laravel 的文档。

    以上所有信息也可以通过 Laravel 的文档获得。对于散列,您可以访问:

    http://laravel.com/docs/security

    【讨论】:

    • 我在我的开发人员工具控制台中找不到错误 404。在我的服务器上找不到请求的 url。你能指导我如何重新加载相同的页面,但在我的地址栏中应该是这样的 public/login=success
    • 让我问你这个问题:你的 ajax 调用响应 404?如果是这样,我应该给你一个解决方法......
    • 我认为该错误会在我的目录中查找在我的 route.php 中分配的页面,但我搜索了有关如何在 laravel 中执行 ajax 的教程,这些代码可能与它们相同。跨度>
    • 请回答我的问题:您的 ajax 是否响应 404?我们必须逐步调试您的应用程序。
    • 那么您必须根据 LARAVEL 的功能配置您的 AJAX 的 URL...在给您答案之前,您必须将您的 ajax 请求发送到同一域的完整 URL。例如,像这样(如果您在本地主机上工作):http://localhost/public/login/success 然后给我们结果以进一步调查问题......
    猜你喜欢
    • 2014-02-15
    • 2013-07-08
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    • 2014-03-04
    • 2018-01-28
    相关资源
    最近更新 更多