0

我正在 Sinatra 中编写 Web 服务。我使用中间件来添加简单、愚蠢的 CORS 支持(通过简单地Access-Control-Allow-Origin=*向所有请求发送垃圾邮件)。我知道有一个具有更强大支持的 gem,但这用 3 行代码就可以满足我的要求。除了...

除了如果@app.call env引发异常,我永远没有机会修改标题。异常一直冒泡到Rack::ShowExceptions,我找不到将额外的标头注入其响应的方法。

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

4

1 回答 1

0

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

于 2012-12-06T11:35:19.043 回答