2013-05-26 9 views
11

Sto utilizzando jQuery per creare pulsanti "Mi Piace" di Facebook dinamici. Tuttavia sto ricevendo un errore che si sta ripetendo continuamente.Errore pulsante Facebook like - frame bloccato

mio jQuery per creare il pulsante è:

$('#fbLike').html('<fb:like href="'+url+'" send="false" layout="button_count" width="80" show_faces="true" />'); 
FB.XFBML.parse(document.getElementById('fbLike')); 

Tuttavia, sto ottenendo il seguente errore:

Blocked a frame with origin "https://www.facebook.com" from accessing 
a frame with origin "http://localhost:8888". The frame requesting 
access has a protocol of "https", the frame being accessed has a 
protocol of "http". Protocols must match. 

Tutte le idee?

  • Modifica

    (function (d, s, id) {var js , FJS = d.getElementsByTagName (s) [0]; if (d.getElementById (id)) return; js = d.createElement (s); js.id = id; js.src = "//connect.facebook.net/en_US/all.js#xfbml=1"; fjs.parentNode .insertBefore (js, fjs); } (documento, 'script', 'facebook-jssdk'));
+0

non utilizzare https se si utilizza http – happy

+2

Come faccio a non https utente durante la connessione a Facebook? Modificherò quanto sopra per mostrare tutto il mio codice relativo a Facebook. – Ian

+0

Configura il tuo server locale per l'esecuzione come https: // localhost ... ecc. – ronnyfm

risposta

0

Ciao Ian hai provato a colpire https://localhost/appname e rieseguire la chiamata? Se stai utilizzando qualcosa come XAMPP, LAMP, MAMP, il tuo sito predefinito dovrebbe essere associato alla porta 443 (https) che consente eventualmente ai protocolli di richiesta di corrispondere. Se stai ancora riscontrando lo stesso problema potresti voler provare questo da un vero server web (WWW di fronte) e vedere se il problema persiste. Inoltre non c'è nessuna impostazione sul lato Facebook che è necessario abilitare per consentire l'uso di localhost alle loro API (swing al buio qui)?

3

Ciò accade perché i protocolli non corrispondono.

Si sta tentando di creare un frame https nella pagina http.

A causa del contenuto misto disabilitato sul tuo browser, stai vedendo quell'errore.

È possibile attivare il contenuto misto su google chrome tramite la riga di comando arg.

chrome.exe --allow-running-insecure-content 
+0

Disabilitare questo in chrome non risolverà il problema anche se lo sta solo coprendo per lo sviluppatore. Probabilmente sarebbe una buona idea risolvere il problema usando una chiamata sicura su pagine sicure. – TheChristopher

Problemi correlati