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 dimio 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. :) :)
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
@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? –
Prima controlla la richiesta Ajax dal postino o altro strumento. – dipesh