2015-12-14 12 views
5

के लिए काम नहीं कर रहा है मैं Google Api के Laravel 5.0 में Google Oauth लॉगिन कर रहा हूं। मुझे वर्तमान में उपयोगकर्ता के ईमेल में लॉग इन करने का डेटा मिलता है, id_token और अब मैं इन डेटा को अपने एपीआई को कॉल करने के लिए नियंत्रक (साइनइन कंट्रोलर) पर भेजना चाहता हूं और प्रतिक्रिया को अजाक्स के माध्यम से फ्रंट एंड (signin.blade.php) पर वापस प्राप्त करना चाहता हूं। प्रश्न लेकिन मेरी अजाक्स पूछताछ काम नहीं कर रही है। मैं यहां कोड संलग्न कर रहा हूं।AJAX अनुरोध लार्वेल 5.0

मेरे Signin.blade.php फ़ाइल के ajax (मैं शामिल किया है CSRF हेडर) की तरह दिखता है:

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

मेरे routes.php लगता है:

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

मेरी SigninController के signinProcessOauth समारोह सामान्य में " फॉर्म के लिए अनुरोध "काम कर रहा है लेकिन" अनुरोध-> AJAX() "शायद काम नहीं कर रहा है। ऐसा लगता है:

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

हर बार जब मैं कोड चलाता हूं, तो मुझे "त्रुटि !! AJAX विफलता मिलती है !!!!" प्रतिक्रिया i.e. AJAX की विफलता समारोह कहा जाता है। मैं इसे समझ नहीं सकता कहां समस्या है? या क्या डेटाम को नियंत्रक से देखने के लिए कोई और तरीका है और आगे की प्रतिक्रिया को वापस प्राप्त करें?

इस तरह के लंबे पद को धैर्यपूर्वक पढ़ने के लिए धन्यवाद। :) :)

+0

अपनी 'त्रुटि: फ़ंक्शन' पर प्रतिक्रिया तर्क जोड़ें और हमें विशिष्ट त्रुटि संदेश -> फ़ंक्शन (jqXHR jqXHR, स्ट्रिंग टेक्स्टस्टैटस, स्ट्रिंग त्रुटि ट्राउन) बताएं - आपको अतिरिक्त शीर्षलेखों की आवश्यकता हो सकती है, जैसे 'सामग्री -टाइप ' – WhiteHat

+0

@ व्हाइटहाट, आपकी तरह की सलाह के लिए धन्यवाद। मैंने सामग्री प्रकार का उपयोग करने का प्रयास किया: contentType: 'application/octet-stream; charset = utf-8 'कमांड। परन्तु सफलता नहीं मिली । मैंने त्रुटि फ़ंक्शन में एक तर्क पारित करने का प्रयास किया और इसे कंसोल में प्रिंट करने का प्रयास किया। नतीजा यह है कि विफलता AJAX !! [ऑब्जेक्ट ऑब्जेक्ट]। और मैंने अपने ब्राउज़र में नेटवर्क का निरीक्षण किया और यह कह रहा है: 500, आंतरिक सर्वर त्रुटि। :(हेडर, सामग्री ठीक है, लेकिन AJAX अनुरोध "नो कैश" का उपयोग कर रहा है। क्या यह एक समस्या हो सकती है? –

+0

पहले पोस्टमैन या अन्य टूल द्वारा अपने AJAX अनुरोध की जांच करें। – dipesh

उत्तर

0

आपकी विधि में $request एक सरणी नहीं है, इसकी एक वस्तु है। तो आपको गुणों तक पहुंचने के लिए -> का उपयोग करने की आवश्यकता है।

0

पालन अपना यूआरएल बदलें:

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

आशा इस काम करेंगे।

संबंधित मुद्दे