2015-12-14 21 views
5

Google Api ile Laravel 5.0'da Google Oauth giriş yapıyorum. Şu anda kullanıcının e-posta adresi olan id_token verilerini alıyorum ve şimdi bu verileri kendi api'mizi çağırmak için denetleyiciye (SigninController) göndermek ve yanıtı bir Ajax üzerinden ön uça (signin.blade.php) geri almak istiyorum. sorgu . Ama benim Ajax sorgum çalışmıyor. Kodları buraya bağlıyorum.ajax talep çalışmıyor laravel 5.0

Benim Signin.blade.php dosyanın ajax (ı dahil ettik csrf başlığındaki) gibi görünür:

$.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 !!!!"); 
      } 
    }); 

Benim routes.php benziyor: my SigninController en signinProcessOauth fonksiyonu normale olarak

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

" Form için İstek "çalışıyor ama" Request-> ajax() "belki çalışmıyor. Ben kodu çalıştırmak

 . 
    . 
    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"; 
    } 

her şey, ben olsun "hatası !! ajax başarısızlığını !!!!": Öyle görünüyor Cevap ajax'in arıza fonksiyonu denir. Anlayamıyorum sorun nerede? Veya veriyi görüntüden denetleyiciye göndermenin ve ön uca yanıtı geri almanın başka bir yolu var mı?

Bu uzun yazıyı sabırla okuduğunuz için teşekkür ederiz. :) :)

+0

Yanıt değişkenlerini 'error: function' öğesine ekleyin ve bize belirli hata mesajını bildirin ->' İşlev (jqXHR jqXHR, String textStatus, String errorThrown) '- İçerik gibi ek başlıklara ihtiyacınız olabilir -Type ' – WhiteHat

+0

@WhiteHat, Nazik tavsiyeniz için teşekkür ederiz. İçerik türünü kullanarak: contentType: 'application/octet-stream; charset = utf-8 'komutu. Ama boşuna. Hata fonksiyonunda bir argümanı geçmeye çalıştım ve konsolda yazdırmaya çalıştım. Sonuç: başarısızlık ajax !! [object Object]. Ve tarayıcımda ağı inceledim ve diyor ki: 500, dahili sunucu hatası. :(üstbilgiler, içerik hepsi tamam, ama ajax isteği "önbellek" kullanıyor. bu bir sorun olabilir mi? –

+0

Önce postacı veya başka bir araç ile ajax isteğinizi kontrol edin. – dipesh

cevap

0

Sizin yönteminizde $request bir dizidir, onun bir nesnesidir. Bu nedenle, özelliklere erişmek için ->'u kullanmanız gerekir.

0
aşağıdaki gibi senin url değiştirme

: Bu çalışacaktır

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

Umut.