2015-12-14 8 views
5

Sto facendo il login di Google Oauth utilizzando Google Api in Laravel 5.0. Ottengo i dati dell'email dell'utente attualmente connesso, id_token e ora voglio inviare questi dati al controller (SigninController) per chiamare la nostra API e ottenere la risposta al front end (signin.blade.php) tramite un Ajax query. Ma la query My Ajax non funziona. Vi allego i codici qui.richiesta di ajax non funziona per laravel 5.0

ajax di

mio Signin.blade.php di file assomiglia (intestazione csrf ho incluso):

$.ajax({ 
      url: '/signin/oauth', 
      type:"POST", 
      data: data, 
      headers: { 'X-CSRF-Token' : token}, 
      success:function(data){ 

       console.log(data); 
       if(data){ 
        console.log("Success nowwww for ajax expected data!"); 
        // window.location.href = '{{url("/home")}}'; 
       } 
       else{ 
        console.log("Success ajax ! But not expected data!"); 
        // window.location.href = '{{url("/signup")}}'; 
       } 

      },error:function(){ 
       alert("error!! ajax failure !!!!"); 
      } 
    }); 

mio routes.php assomiglia:

Route::post('/signin/oauth', [ 
     'uses' => '[email protected]', 
     'as' => 'post_signin_oauth', 
    ]); 

Nella mia funzione di signinProcessOauth SigninController normale " Richiesta di Form "funziona ma" Request-> ajax() "potrebbe non funzionare. Sembra:

 . 
    . 
    use Illuminate\Http\Request; 
    use Illuminate\Support\Facades\Session; 
    . 
    . 
    public function signinProcessOauth(Request $request) 
    { 
     $getData = $request->ajax(); 

     if ($getData) { 

     $authCode = $request['authCode']; 
     $idToken = $request['idToken']; 
     $userEmail = $request['userEmail']; 

       // call the api here and send the above data to the server and process the response like saving the cookie etc 

     return $authCode; // return according to the response,this will return in ajax success function,right now it is authcode just for testing purpose 
    } 

    return "error"; 
    } 

Ogni volta che eseguo il codice, ottengo "errore !! errore di ajax !!!!" risposta, ad esempio, viene chiamata la funzione di errore di ajax. Non riesco a capirlo Dove si trova il problema? Oppure esiste un altro modo per inviare il datam dalla vista al controller e recuperare la risposta al frontend?

Grazie per aver letto pazientemente questo post così lungo. :) :)

+0

aggiungi gli argomenti di risposta al tuo 'errore: funzione' e facci sapere il messaggio di errore specifico ->' Funzione (jqXHR jqXHR, String textStatus, String errorThrown) '- potresti aver bisogno di intestazioni aggiuntive, come ad esempio' Contenuto -Tipo' – WhiteHat

+0

@WhiteHat, grazie per il vostro consiglio gentile. Ho provato il tipo di contenuto usando: contentType: 'application/octet-stream; comando charset = utf-8 '. Ma invano . Ho provato a passare un argomento nella funzione di errore e ho provato a stamparlo in console. Il risultato è: failure ajax !! [oggetto Object]. E ho ispezionato la rete nel mio browser dicendo: 500, errore interno del server. :(intestazioni, contenuto tutto ok, ma la richiesta Ajax utilizza "no cache" può essere un problema? –

+0

Prima controlla la richiesta Ajax dal postino o altro strumento. – dipesh

risposta

0

Nel metodo $request non è un array, è un oggetto. Quindi è necessario utilizzare -> per accedere alle proprietà.

0

modificare l'URL come segue:

url: '{!! route('post_signin_oauth') !!}' 

Spero che questo funzionerà.

Problemi correlati