2013-02-15 21 views
24

मेरा कैनवास पर आधारित एक एफबी ऐप है। क्रोम और फ़ायरफ़ॉक्स दोनों पर एक समस्या का सामना करना, (हालांकि आमतौर पर क्रोम):फेसबुक: असुरक्षित जावास्क्रिप्ट मुद्दा (document.domain मान समान होना चाहिए)

1. जब मैंने एक नई गुप्त क्रोम विंडो (https://apps.facebook.com/myfbappnamespace/) पर अपना अनुमोदित एफबी ऐप सुरक्षित यूआरएल मारा, तो नीचे दी गई त्रुटि केवल पहली बार आती है, और जब मैं पृष्ठ को रीफ्रेश त्रुटि चला गया है

The page at about:blank displayed insecure content from http://static.ak.facebook.com/connect/xd_arbiter.php?version=18#cb=f2e4fe7b …os.com%2Ff4aeadb2&domain=www.mydomain.com&relation=parent&error=unknown_user.

Unsafe JavaScript attempt to access frame with URL http://www.mydomain.com/control/myfacebookapp/ from frame with URL http://static.ak.facebook.com/connect/xd_arbiter.php?version=18#cb=f2e4fe7b …os.com%2Ff4aeadb2&domain=www.mydomain.com&relation=parent&error=unknown_user. The frame requesting access set 'document.domain' to 'facebook.com', but the frame being accessed did not. Both must set 'document.domain' to the same value to allow access.
xd_arbiter.php:18

Unsafe JavaScript attempt to access frame with URL http://www.mydomain.com/control/myfacebookapp/ from frame with URL http://static.ak.facebook.com/connect/xd_arbiter.php?version=18#cb=f2e4fe7b …os.com%2Ff4aeadb2&domain=www.mydomain.com&relation=parent&error=unknown_user. The frame requesting access set 'document.domain' to 'facebook.com', but the frame being accessed did not. Both must set 'document.domain' to the same value to allow access. xd_arbiter.php:18

2. जब (समय की सबसे) मैं http यूआरएल (http://apps.facebook.com/myfbappnamespace/) की कोशिश, कंसोल में दिखाया गया त्रुटि है:

Unsafe JavaScript attempt to access frame with URL http://apps.facebook.com/myfbappnamespace/ from frame with URL https://s-static.ak.facebook.com/connect/xd_arbiter.php?version=18#channel= …Fcontrol%2Ffacebookappchannelurl%3Ffb_xd_fragment%23xd_sig%3Df23e84e85c%26. The frame requesting access has a protocol of 'https', the frame being accessed has a protocol of 'http'. Protocols must match.

अब जब मैं बुद्धिमान होता हूं तो यह देखने के लिए कि मैं अपने एफबी खाते में लॉगिन करता हूं एच इन त्रुटियों, वे कभी-कभी कभी-कभी चले जाते हैं। मुझे पता है कि मैं अपनी क्वेरी में "ज्यादातर बार" और "कभी-कभी" का उपयोग कर रहा हूं लेकिन यह मेरे साथ क्या हो रहा है। मैंने मंचों की खोज भी की है और महसूस किया है कि एफबी ने पहले ही इस पुराने मुद्दे को ठीक कर दिया है जिसे क्रोम विशिष्ट माना जाता था। मैंने यह सुनिश्चित कर लिया है कि मेरा FB.init और अन्य कॉल location.protocol मान विशिष्ट हैं। कैनवास यूआरएल (http) और सुरक्षित कैनवास यूआरएल (https) में सही मान भी कॉन्फ़िगर किया गया है। दोनों सेटिंग्स के साथ भी प्रयास किया: खाता सेटिंग्स -> सुरक्षा -> सुरक्षित ब्राउज़िंग -> (सक्षम और अक्षम)

क्या कोई मदद कर सकता है अगर मुझे कहीं कुछ याद आ रहा है?

उत्तर

23

बहुत सारे संभावित मुद्दे हैं। इन समाधानों में से एक के साथ प्रयास करें: आप अपने ऐप का परीक्षण कर रहे हैं ताकि अगर

  • प्रोटोकॉल, एक ही (ताकि पेज कि iframe उपयोग करने के लिए साइट है कि आइफ्रेम देने का एक ही प्रोटोकॉल होना आवश्यक प्रयास करता है) होना चाहिए सैंडबॉक्स मोड (http hTTPS के बजाय), अपने परीक्षण खाते
  • channelUrl के "सुरक्षित ब्राउज़िंग" मोड अक्षम FB.init()पर (नीचे कोड देखें)
  • अपाचे के शीर्ष लेख आधुनिक सक्षम और अपने में नीचे लाइनों डाल दिया। htaccess
  • शरीर टैग टैग के बाद <div id="fb-root"></div> डालें अमेरिकन प्लान दस्तावेज़ यहाँ में ined: https://developers.facebook.com/docs/reference/javascript/
  • कोशिश (एक लॉगिन बटन पर क्लिक) की तरह एक उपयोगकर्ता कार्रवाई के बाद सभी स्वचालित लॉगिन कोड डालने के लिए
  • कैनवास URL से स्लैश हटाने की तरह (एप्लिकेशन → सेटिंग्स में) http://yoursite.com?
  • संपादित अपने <html> टैग इस तरह: .htaccess

    <IfModule mod_headers.c> 
        Header set Access-Control-Allow-Origin "*" 
    </IfModule> 
    
    के लिए <html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="https://www.facebook.com/2008/fbml">

कोड चैनलों जारी करने के लिए

कोड:

FB.init({ 
    appId: '1234567890', 
    status: true, 
    cookie: true, 
    xfbml: true, 
    channelUrl : '//yoursite.com/channel.html' 
}); 

चैनल।

<script src="//connect.facebook.net/en_US/all.js"></script> 

संपादित

अपने पहले अंक के बारे में:: एचटीएमएल अपने सर्वर द्वारा दिया इस एक लाइन को शामिल करना चाहिए

The page at about:blank displayed insecure content from http://static.ak.facebook.com/connect/xd_arbiter.php?version=18#cb=f2e4fe7b…os.com%2Ff4aeadb2&domain=www.mydomain.com&relation=parent&error=unknown_user. 

यह एक उम्मीद अपवाद है कि एक के लिए परीक्षण करने के लिए इस्तेमाल किया जाता है हालत - इसका कोई साइड इफेक्ट नहीं है इसलिए इसकी परवाह नहीं है।

कृपया इस सवाल का संदर्भ लें: Unsafe JavaScript attempt to access frame with URL: Domains, protocols and ports must match.

+0

फिक्स की विस्तृत सूची के लिए धन्यवाद, मैंने उन सभी को आजमाया है (.htaccess को छोड़कर, टॉमकैट के लिए समकक्ष सेटिंग्स फ़ाइल की खोज करेगा) लेकिन दुर्भाग्यवश, समस्या अभी भी मौजूद है। इसके अलावा, त्रुटि के अनुसार, मैंने document.domain मान को "facebook.com" पर सेट करने का प्रयास किया लेकिन ऐसा नहीं कर सकता क्योंकि मेरा पूरी तरह से अलग डोमेन है और हम यह मान केवल उप-डोमेन या समान डोमेन पर सेट कर सकते हैं। –

+0

दस्तावेज़.डोमेन कामकाज काम नहीं करता है, इसलिए मैंने इसे अपनी सूची में शामिल नहीं किया। अब, क्या आपको कुछ कोड या ऐप यूआरएल दिखाने के लिए है? –

+0

हाय, आपके उत्तर के लिए धन्यवाद, मैंने आपको अपने संपर्क पृष्ठ (http://www.realizzazione-sito.info/francesco_casula) पर कुछ fb.init कोड और ऐप यूआरएल ईमेल किया है, क्षमा करें इस मंच पर वही नहीं लिख सका । यदि आप कृपया इस पोस्ट और अन्य उपयोगकर्ताओं को यहां ठीक करने के बारे में बताएं तो कृपया बहुत सराहना करेंगे जो समान/समान गलतियों को कर सकते हैं। –

0

मेरे मामले में मैं एक "_Layout" दृश्य में "फेसबुक की तरह बॉक्स" था और मैं इसके लिए कुछ सीएसएस अनुकूलित करने के लिए किया था, global.css पर फ़ाइल।

 
Uncaught SecurityError: Failed to read the 'contentDocument' property from 'HTMLIFrameElement': Blocked a frame with origin "http://localhost:51826" from accessing a frame with origin "http://static.ak.facebook.com". The frame being accessed set "document.domain" to "facebook.com", but the frame requesting access did not. Both must set "document.domain" to the same value to allow access. 

किसी तरह मुझे लगता है कि:

 
.fb_iframe_widget, .fb_iframe_widget span, .fb_iframe_widget span iframe[style] { 
    width: 100% !important; 
} 

तब, जब मैं इस तरह के लेख और समाचार, जो फेसबुक के लिए एक साझा करें बटन के रूप में आंतरिक पृष्ठों, लोड करने का प्रयास, यह मेरे इस त्रुटि देने के लिए शुरू होता है सीएसएस कोड की लाइन इस मुद्दे को (वैश्विक दायरे में होने के कारण), मेरे शेयर बटन के लिए आईफ्रेम के व्यवहार को एक्सेस करने और संशोधित करने का प्रयास कर रही थी।

  1. सीएसएस कोड की उस पंक्ति को हटाने से समस्या हल हो गई।
  2. विशिष्ट पृष्ठ पर सीएसएस कोड की उस पंक्ति को स्थानांतरित करना जिसमें < शैली> टैग के अंदर "फेसबुक-जैसी-बॉक्स" है।
संबंधित मुद्दे