无法从Laravel中的ajax调用重定向到html视图

时间:2016-08-10 17:25:58

标签: jquery ajax laravel

我正在html呈现我的观点并在laravel中使用我的后端api。用户从cloudapp.azure.com/welcome.html登录后,我的脚本cloudapp.azure.com/js/script2.js将用户密码发送到我的Laravel控制器;

//cloudapp.azure.com/js/script2.js

if(error_username == false && error_password == false){

        var details = [$("#username1").val(),$("#password1").val()];


        var url = "http://depressionapp1.westeurope.cloudapp.azure.com/index.php/";

        $.ajax({
           url: url,
           type: 'POST',
           data: {dataname: details},               
           success: function(result){

                 //THIS IS WHERE I AM HAVING PROBLEMS

                 location.href = "http://depressionapp1.westeurope.cloudapp.azure.com/welcome1.html";

                 /* or
                 var url1 =  "http://depressionapp1.westeurope.cloudapp.azure.com/" + result;
                 $.get(url1);*/


           }




        });

我的控制器来自路线网址cloudapp.azure.com/index.php/ 处理请求并返回一个字符串' welcome.html'根据需要。

//UserController@postLogin works fine and returns 'welcome.html'

      public function postLogin(Request $request){
   $result = DB::table('users')->select('user_id')->where('username', $request['username'])->get();
   $user = $result[0];
   $val = '';       
   if(Auth::attempt(['username' => $request['username'], 'password' => $request['password']])){

        $count = Answer::where('user_id', $user->user_id)->where('level', '<>', NULL)->count();
        if($count){
            return redirect()->route('checkLevel'); 
        }else{ 
            $val = 'welcome1.html';
        }   
   }
   $data = array('page' => $val, 'id' => $user->user_id);
   return response($val);      

}

现在因为Laravel的网址路由处理这个&#39; welcome.html&#39;是cloudapp.azure.com/index.php/它总是似乎留在这个网址,并在我的ajax调用成功后,我想重定向到cloudapp.azure.com/welcome1.html的html页面即。 &#39; cloudapp.azure.com&#39; +结果(&#39; welcome.html&#39;)。

我试过以下

$.ajax({
           url: url,
           type: 'POST',
           data: {dataname: details},               
           success: function(result){

                 //THIS IS WHERE I AM HAVING PROBLEMS

                 location.href = "http://depressionapp1.westeurope.cloudapp.azure.com/welcome1.html";

                 /* or
                 var url1 =  "http://depressionapp1.westeurope.cloudapp.azure.com/" + result;
                 $.get(url1);*/


           }

但我似乎被困在Laravel的路线上,我无法重定向。

1 个答案:

答案 0 :(得分:0)

您的ajax调用使用此数据发送帖子请求:

        data: {
            dataname: [
                $("#username1").val(),
                $("#password1").val()
            ]
        },

在您的控制器中,您正在抓取不同的值

$request['username']

所以你的ajax数据应如下所示:

        data: {
            username: $("#username1").val(),
            password: $("#password1").val()
        },

修复此问题,然后检查浏览器控制台以查找任何其他错误。