Обходной путь для предотвращения междоменной ошибки Facebook «Нравится»? - PullRequest
4 голосов
/ 24 января 2012

Я работаю над этой конкретной ошибкой уже неделю, отлаживаю различные социальные кнопки и сужаю их до Facebook в целом: каждая реализованная кнопка «Мне нравится» (HTML5, xfbml и т. Д.) Вызывает одинаковые ошибка междоменного скриптинга. По сути, Facebook вызывает эту ошибку с каждым iFrame (как показано ниже) после нажатия кнопки «Нравится»:

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.

Почему это не дубликат: проблема возникает даже при отсутствии кнопки Twitter и кнопки Google +. это также происходит в каждой реализации кнопки «Нравится». симптомы указывают на новую проблему.

Попытка методов: Я перепробовал несколько «версий» кнопки «Мне нравится» с одной и той же проблемой. Это даже противоречит DISQUS.

Подозреваемые: Страницы без кода DISQUS работают нормально. Эта переменная (выводится плагином DISPUS WordPress) подозрительна:

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

Кроме того, вывод JavaScript на Facebook также является подозрительным.

Посмотрите сами: Перейдите к http://www.vancitybuzz.com/2012/01/research-in-motion-ceos-resign/ но, скорее всего, все изменится.

Вопрос

Учитывая приведенную здесь информацию, кто-нибудь знает обходной путь для устранения междоменной ошибки? Большое спасибо.

1 Ответ

2 голосов
/ 24 января 2012

После того, как несколько человек, включая меня, посмотрели на это, в настоящее время не существует обходного пути для междоменных ошибок, потому что Facebook использует iFrames для связи.

Это также относится к кнопке Google Plus в ее нынешнем виде.

Однако будущее выглядит светлым. Разработчики Google (и, вероятно, Facebook) также подтвердили, что работают над новым решением.

Между тем, некоторые люди сообщают, что использование Facebook и других плагинов виджетов, кажется, облегчает проблему на сайтах со структурой Wordpress. Нет гарантий.

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

Будущее: Я не удивлюсь, если будут использоваться веб-сокеты (и резервные копии flash ws), но я оставлю это разработчикам платформы

...