2016-02-10 4 views
2

Я хочу сделать JSON со следующим cors заголовком в мой контроллер:Рендер JSON с заголовком

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

Я попытался это:

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

, но я получил AbstractController::DoubleRenderError. Есть ли способы визуализации JSON с заголовками?

ответ

4

Вы не можете установить заголовок после рендера, поскольку ответ отправляется. Поэтому измените заголовки после того, как не будет смысла, и вы получите эту ошибку.

Try:

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

Проблема здесь в том, что вы оказываете ответ, а затем посылать заголовки.
Вы должны никогда установить заголовки после отправки ответа.

render Должно быть, как правило, последняя строка вашего action.

def my_action 
    ... 
    response.headers['Access-Control-Allow-Origin'] = '*' 
    render json: some_params 
end 
Смежные вопросы