He estado trabajando en este error en particular durante una semana, depurando diferentes botones sociales y reduciéndolo a Facebook en general: cada botón "Me gusta" que he implementado (HTML5, xfbml, etc.) activa el mismo dominio cruzado error de secuencia de comandos. Básicamente, Facebook activa este error con cada iFrame (como a continuación) al hacer clic en "Me gusta":

Unsafe JavaScript attempt to access frame with URL http://mediacdn.disqus.com/1326940420/build/system/def.html#xdm_e=http%3A%2F%2Fwww.vancitybuzz.com&xdm_c=default4311&xdm_p=1& from frame with URL http://www.facebook.com/plugins/like.php?channel_url=https%3A%2F%2Fs-static.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%3Fversion%3D3%23cb%3Df31a0247d%26origin%3Dhttp%253A%252F%252Fwww.vancitybuzz.com%252Ff3c0eb7e0c%26relation%3Dparent.parent%26transport%3Dpostmessage&extended_social_context=false&href=http%3A%2F%2Fwww.vancitybuzz.com%2F2012%2F01%2Fchinese-new-year-events-2012-vancouver-richmond-burnaby%2F&layout=box_count&locale=en_US&node_type=link&sdk=joey&send=false&show_faces=false&width=90. Domains, protocols and ports must match.

Por qué esto no es un duplicado: el problema ocurre incluso sin el botón de Twitter y el botón de Google +. también ocurre en cada implementación del botón "Me gusta". los síntomas apuntan a un nuevo problema.

Métodos intentados: he probado varias "versiones" del botón Me gusta, todas con el mismo problema. Incluso está en conflicto con DISQUS.

Sospechosos: las páginas que no tienen ningún código DISQUS funcionan con normalidad. Esta variable (generada por el complemento de wordpress de DISQUS) es sospechosa:

var facebookXdReceiverPath = 'http://www.vancitybuzz.com/wp-content/plugins/disqus-comment-system/xd_receiver.htm'; 

Además, la salida de JavaScript de Facebook también es sospechosa.

Véalo usted mismo: vaya a http : //www.vancitybuzz.com/2012/01/research-in-motion-ceos-resign/, sin embargo, es probable que cambie.

La pregunta

Dada la información aquí, ¿alguien conoce alguna solución para forzar el error de dominio cruzado? Muchas gracias.

4
crockpotveggies 24 ene. 2012 a las 05:20
Esto no es solo para Facebook, ocurre con cada solicitud de dominio cruzado como Google plus1, etc. Echa un vistazo a este stackoverflow.com/questions/4324108/…
 – 
The Alpha
24 ene. 2012 a las 05:24
¿Significaría eso que necesito encontrar "parent.locations" tanto estáticos como generados dinámicamente y unificar los dominios? ¿Sabes dónde / si Facebook lo incluye? ¡Gracias!
 – 
crockpotveggies
24 ene. 2012 a las 05:36
Solo para aclarar, ¿el error está causando que se rompa alguna funcionalidad o simplemente abarrotando su consola? Los navegadores tienden a registrar excepciones de seguridad incluso si ocurren en un bloque try / catch (supongo que para advertir a los usuarios paranoicos de que un sitio puede haber intentado hacer algo malo). La mayoría de los hacks AJAX entre dominios requieren una serie de intentos y capturas para averiguar qué método funcionará en su navegador en particular.
 – 
Mike Ruhlin
24 ene. 2012 a las 05:48
No dejo piedra sin remover, pero sospecho que esto podría estar afectando los "recuentos" de Facebook, aunque probablemente la causa sea un problema diferente y no relacionado: stackoverflow.com/questions/8953786/…
 – 
crockpotveggies
24 ene. 2012 a las 05:58

1 respuesta

La mejor respuesta

Después de que varias personas hayan investigado esto, incluyéndome a mí, actualmente no existe una solución alternativa para los errores entre dominios porque Facebook usa iFrames para comunicarse.

Esto también se aplicaría al botón Google Plus tal como está hoy.

Sin embargo, el futuro parece prometedor. Los desarrolladores de Google (y probablemente también Facebook) han confirmado que están trabajando en una nueva solución.

Mientras tanto, algunas personas han informado que el uso de Facebook y otros complementos de widgets parece aliviar el problema en los sitios estructurados con Wordpress. Sin garantías.

http://mashable.com/2010/05/07/wordpress-facebook-like-buttons/

El futuro: no me sorprendería que se utilicen websockets (y flash ws fallbacks), pero eso se lo dejo a los desarrolladores de la plataforma.

2
crockpotveggies 24 ene. 2012 a las 08:19