ruby – 如果我按照链接,Heroku上的Sinatra应用程序会响应Forbidden

我创建了一个小的Sinatra应用程序并使用Puma来运行它.我已将我的应用程序部署到Heroku,一切正常,但如果我按照外部链接访问我的应用程序,我会得到响应禁止.这是从哪里来的?

该应用程序仅定义一个HTTP方法:

require 'sinatra'

get '/' do
  headers 'Content-Type' => 'application/json'
  body 'Hello World'
end

例如,在https://contactsampleprovider.herokuapp.com/之后将导致Forbidden,但在浏览器中手动输入URL工作正常.

如果我省略了header-call,一切都按预期工作.

最佳答案
这是Rack保护的一项功能,如果您将内容类型设置为JSON,它似乎会自动启用.它可以被禁用

set :protection, :except => [:json_csrf]

例如在Sinatra and Rack protection的这个问题中所描述的.

转载注明原文:ruby – 如果我按照链接,Heroku上的Sinatra应用程序会响应Forbidden - 代码日志