2011-08-24 17 views
7

मैं रेल 3.1, डेविस और Omniauth का उपयोग करता हूं।फेसबुक omniauth कॉलबैक और #_

समस्या यह है कि जब फेसबुक मेरे ऐप पर कॉलबैक करता है तो यूआरएल #_ के साथ समाप्त होता है। फिर जब कॉलबैक एक्शन में मैं कुछ पर रीडायरेक्ट करता हूं - उदाहरण के लिए /after_signin रीडायरेक्ट परिणाम /after_signin#_ में।

कोई विचार यूआरएल से इस एंकर को कैसे हटाया जाए?

संपादित करें: इससे कोई फर्क नहीं पड़ता कि मैंने कॉलबैक फ़ंक्शन में क्या रखा है। यहां तक ​​कि साधारण पुन: निर्देश:

class Users::OmniauthCallbacksController < ApplicationController 
    def facebook 
    redirect_to "/after_callback" 
    end 
end 

यह भी सामान्य नियंत्रक में /after_callback#_

के लिए जा रहा में परिणाम होगा यदि आप /#_ के पास जाकर आप कुछ वहाँ इसके साथ #_ संलग्न निर्दिष्ट पथ पर पुनः निर्देशित जायेगा अनुप्रेषित है अतं मै।

EDIT2: मुझे पता चला कि यह एंकर को संरक्षित करने के लिए ब्राउज़र गलती है। तो यह आगे बढ़ने के लिए होना चाहिए।

+0

कृपया अपने कॉलबैक फ़ंक्शन का कोड दिखाएं। –

+0

@ बेन ली: यहां आप –

+0

पर जाएं जो कि विचित्र है। हैश मूल्य क्यों ले जाएगा? हो सकता है कि 'redirect_to "/ after_callback", एंकर =>' ''? –

उत्तर

2

यदि आपको विश्वास है कि यह एक ब्राउज़र समस्या है, तो आप window के location ऑब्जेक्ट के hash भाग को अपडेट करने के लिए जावास्क्रिप्ट का उपयोग कर सकते हैं। शायद इस तरह कुछ:

if (window.location.hash.search('#_') >= 0) { 
    window.location.hash = ''; 
} 
संबंधित मुद्दे