使用标头渲染JSON

我想在我的控制器中使用以下cors头呈现JSON:

 'Access-Control-Allow-Origin' = '*'. 

我试过这个:

 def my_action render(json: some_params) response.headers['Access-Control-Allow-Origin'] = '*' end 

但是我得到了一个AbstractController::DoubleRenderError 。 有没有办法用标题呈现JSON?

渲染后无法设置标题,因为响应已发送。 因此在没有意义之后更改标题会导致此错误。

尝试:

 def my_action response.headers['Access-Control-Allow-Origin'] = '*' render(json: some_params) end 

这里的问题是您正在呈现响应然后发送标头。
在发送响应后,您永远不应设置标头。

render通常应该是你行动的最后一行。

 def my_action ... response.headers['Access-Control-Allow-Origin'] = '*' render json: some_params end