出于某种原因,Facebook的履带引发了我的rails行动JSON响应。 这将导致动作只返回对象的JSON表示,没有经过正常的HTML标记+开放图形标签。 我曾与导轨3.2.6测试这一点。 我使用Facebook的Open Graph调试器,看看有什么刮板看到: http://developers.facebook.com/tools/debug 。
该代码是非常简单的。 想象一下,一个对象的一个简单的“作秀”行为,例如用户。 它结束与:
respond_to do |format|
format.js { render :json => @this.to_json }
format.html
end
facebook的履带触发format.js,这导致开放图形标签不被呈现。 任何想法,为什么这件事会发生,或如何解决? 谢谢。
确定这样的Facebook发送接受的报头
*/*
由于没有特定的格式要求,轨道只是下降的顺序respond_to代码块。 如果您在第一的respond_to列出你的js像下面轨块将facebook的开放式履带与JSON这是行不通的回应:
respond_to do |format|
format.js { render :json => @this.to_json }
format.html
end
只需切换顺序,以便在默认情况下轨与HTML响应:
respond_to do |format|
format.html
format.js { render :json => @this.to_json }
end
我不知道为什么Facebook并没有指定他们正在寻找的格式...似乎很愚蠢的我。 希望这有助于别人的道路。
检查哪些HTTP请求头Facebook的履带正在发送-尤其是接受头。
很可能他们发送,它可以让你的应用程序认为它有送东西不同,那么普通的HTML输出的值。