加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails 500错误会覆盖我的标题

发布时间:2020-12-17 02:06:28 所属栏目:百科 来源:网络整理
导读:我有一个rails应用程序,其中cors设置在before_filter上: def cors headers['Access-Control-Allow-Origin'] = '*' headers['Access-Control-Allow-Headers'] = 'X-AUTH-TOKEN,X-API-VERSION,X-Requested-With,Content-Type,Accept,Origin' headers['Access-
我有一个rails应用程序,其中cors设置在before_filter上:

def cors
  headers['Access-Control-Allow-Origin'] = '*'
  headers['Access-Control-Allow-Headers'] = 'X-AUTH-TOKEN,X-API-VERSION,X-Requested-With,Content-Type,Accept,Origin'
  headers['Access-Control-Allow-Methods'] = 'POST,GET,PUT,DELETE,OPTIONS'
  headers['Access-Control-Max-Age'] = "1728000"
end

before_filter :cors

这很好用.然后,如果路由上引发错误,则会覆盖标头.

def index
  object.undefined_method() // undefined method `undefined_method'
end

响应标头:

Keep-Alive
Content-Length →16399
Content-Type →text/html; charset=utf-8
Date →Thu,08 May 2014 18:51:20 GMT
Server →WEBrick/1.3.1 (Ruby/2.0.0/2013-11-22)
X-Request-Id →6ace3d4e-4367-452c-a924-c4c490f207de
X-Runtime →0.130761

即使before_filter运行,那些标题也不存在.虽然不应该存在500错误,但我希望前端开发人员能够给我一个比“我这样做并且CORS不起作用”更具描述性的错误.我希望CORS能够得到结果.

谢谢.

解决方法

默认情况下,Rails使用 Rack Middleware来处理错误.此中间件 totally skips来自请求的任何标头.可能的解决方案 – 使用您自己的错误页面处理程序,here描述了许多好主意

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读