CORS支持Rack / Sinatra错误响应?

时间:2012-12-06 11:05:31

标签: ruby rack cors

我正在Sinatra写一个网络服务。我使用中间件来添加简单,愚蠢的CORS支持(只需在所有请求上发送Access-Control-Allow-Origin=*垃圾邮件)。我知道有一个更强大支持的宝石,但这可以实现我想要的3行代码。除了...

除非@app.call env引发异常,否则我永远不会有机会修改标题。异常气泡一直到Rack::ShowExceptions,我无法找到将额外标题注入其响应的方法。

我是否必须停止使用Rack::ShowExceptions?我需要进行mokeypatch吗?我应该将更多中间件放在堆栈中,以便捕获非CORS感知的错误消息并添加它们吗?我不确定我知道怎么做。

1 个答案:

答案 0 :(得分:0)

原来我猜对了:我只需要确保use DumbCorsSupportuse Rack::ShowExceptions之前。但值得注意的是,至少在我使用的浏览器中,如果您的500页没有提供与其他服务相同的CORS标头,那么您的客户端错误回调不会被触发!