4

このメッセージが無制限に (ループのように) 表示され、ウェブサイトが壊れます

Rails 4.0.0 (ターボリンク付き)

エラーメッセージ

オリジンが「 https://www.facebook.com 」のフレームが、オリジンが「 http://app.herokuapp.com 」のフレームにアクセスするのをブロックしました。アクセスを要求するフレームのプロトコルは「https」、アクセスされるフレームのプロトコルは「http」です。プロトコルが一致する必要があります。

Facebook.js.コーヒー

fb_root = null
fb_events_bound = false

$ ->
  loadFacebookSDK()
  bindFacebookEvents() unless fb_events_bound

bindFacebookEvents = ->
  $(document)
    .on('page:fetch', saveFacebookRoot)
    .on('page:change', restoreFacebookRoot)
    .on('page:load', ->
      FB?.XFBML.parse()
    )
  fb_events_bound = true

saveFacebookRoot = ->
  fb_root = $('#fb-root').detach()

restoreFacebookRoot = ->
  if $('#fb-root').length > 0
    $('#fb-root').replaceWith fb_root
  else
    $('body').append fb_root

loadFacebookSDK = ->
  window.fbAsyncInit = initializeFacebookSDK
  $.getScript("//connect.facebook.net/it_IT/all.js")

initializeFacebookSDK = ->
  FB.init
    channelUrl   : 'http://app.heroku.com/page/fbchannel'
    appId        : 'MY_ID_HERE'
    status       : true
    cookie       : true
    xfbml        : true

ページコントローラー

class PageController < ApplicationController
skip_before_action :authenticate_user!

def fbchannel
    cache_expire = 1.year
    response.headers["Pragma"] = "public"
    response.headers["Cache-Control"] = "max-age=#{cache_expire.to_i}"
    response.headers["Expires"] = (Time.now + cache_expire).strftime("%d %m %Y %H:%I:%S %Z")
    render :layout => false, :inline => "<script src='//connect.facebook.net/it_IT/all.js'></script>"
  end
end

FBlike (ヘルパー)

def fblike(resource, layout = 'standard')

        content_tag(:div, "", class:"fb-like", data: {
            href: polymorphic_url(resource),
            width: "225",
            show_faces: false,
            stream: false,
            show_border: false,
            header: false,
            layout: layout

            }
        )
    end
4

1 に答える 1

0

かなり古い質問ですが、まだ開いているので、この回答をまだ見ていない場合は、Mademoiselle Geek がぴったりです。私のherokuアプリを簡単に再確認すると、実際には、http:の代わりにhttps:と入力するだけで、SSL接続が自動的に受け入れられることが確認されます-セットアップは不要です. 設定する必要があるのは、Facebook.js.coffee-このセクションだけです..

initializeFacebookSDK = ->
  FB.init
    channelUrl   : 'http://app.heroku.com/page/fbchannel'

への変更..

initializeFacebookSDK = ->
  FB.init
    channelUrl   : 'https://app.heroku.com/page/fbchannel'

次に、お使いのオペレーティング システム (私は Linux を使用) に応じて、簡単な grep 検索 (またはディレクトリ内のファイルのテキストを検索) を実行し、http://app.heroku安全のために https に変更します。

于 2013-09-30T13:02:00.050 に答える