2016-08-10 3 views
0

私はビューをhtmlにレンダリングしていて、バックエンドのAPIはlaravelにしています。ユーザーがcloudapp.azure.com/welcome.htmlからログインすると、自分のスクリプトcloudapp.azure.com/js/script2.jsがユーザーのパスワードをLaravel Controllerに送信します。Laravelのajax呼び出しからhtmlビューにリダイレクトできない

//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);*/ 


      } 




     }); 

マイControlllerルートのURL cloudapp.azure.com/index.php/ からの要求を処理し、必要に応じて文字列 'のwelcome.html' を返します。今

//[email protected] 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);  

}

「のwelcome.html」は、このリターンを処理LaravelのURLルートがcloudapp.azure.com/index.php/されているので、常にこのURLで、私の成功時に滞在しているようですajaxコール、私はcloudapp.azure.com/helcome1.htmlのHTMLページにリダイレクトしたいと思います。 'cloudapp.azure.com' +結果(「welcome.html」です)。

私は

$.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

上記のように 'window.location'を試しましたか?http://stackoverflow.com/a/506004/1133306 –

+0

はい。 – Moses

+0

'成功'関数の 'result'の内容は何ですか? –

答えて

0

ユアーズAJAX呼び出しは、このデータをポスト要求を送信します。

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

そして、あなたのコントローラにあなたが異なる値

$request['username'] 

をつかんでいるので、あなたのAjaxのデータは次のようになります。

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

これを修正し、ブラウザのコンソールで他のエラーを確認してください。

+0

みんな、コントローラは上で述べたようにうまく動作します、私はログインの細かさを処理しました、それはすべて動作します!ここで私の問題ではない、私は返すとき、string'welcome.html 'と私はjavascriptのHTMLビューにリダイレクトしようとしています、それは私の問題です。事前に多くの感謝。 – Moses

関連する問題