【发布时间】:2019-05-06 10:55:56
【问题描述】:
如果我在application.rb 中输出config.action_dispatch.default_headers,我会看到所有standard rails headers:
{"X-Frame-Options"=>"SAMEORIGIN", "X-XSS-Protection"=>"1; mode=block", "X-Content-Type-Options"=>"nosniff", "X-Download-Options"=>"noopen", "X-Permitted-Cross-Domain-Policies"=>"none", "Referrer-Policy"=>"strict-origin-when-cross-origin"}
但是,如果我随后向我的应用程序(使用 curl/browser/postman)发出请求,我将看不到上述任何内容。我只看到以下内容:
$ curl -v -XGET 'localhost:4000/myresource/581'
* TCP_NODELAY set
* Connected to localhost (::1) port 4000 (#0)
> GET /myresource/581 HTTP/1.1
> Host: localhost:4000
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: application/json; charset=utf-8
< ETag: W/"292a7d87b10e292374e765dd0b56fee7"
< Cache-Control: max-age=0, private, must-revalidate
< X-Request-Id: 7ff75ff6-f598-4489-9439-a4c17c6a5480
< X-Runtime: 0.025049
< Transfer-Encoding: chunked
<
这一切都在本地运行,没有网络服务器/代理。在生产中,我缺少相同的标题。
Rails API 模式是否会删除它认为与 API 无关的标头?还是只能是我的应用程序中的其他代码在执行此操作?
【问题讨论】:
标签: ruby-on-rails http-headers rails-api ruby-on-rails-5.2