Как отключить фильтр rails protect_from_forgery только для json

У меня есть веб-сайт, созданный с помощью Rails3, и теперь я хочу реализовать json API для доступа мобильных клиентов. Однако отправка json-запроса от клиента из-за фильтра protect_from_forgery. Поскольку клиент не будет получать какие-либо данные с сервера, клиент не может получить auth_token, поэтому я хотел бы отключить параметр protect_from_forgery только для запросов json (я думал, что rails3 делает это по умолчанию, но, по-видимому, это не так) .

Я знаю, что похожая тема обсуждается на здесь , но в этом случае он получает auth_token перед отправкой почтового запроса.

Итак, мой вопрос: отключение protect_from_forgery только для json - хороший способ сделать это ? Если да, то как это сделать? Если нет, то какая альтернатива?

К вашему сведению, я использую следующий запрос ajax

$.ajax({
             type: 'POST',  
             url: "http://www.example.com/login.json",  
             data: { 'email': emailVal, 'password': passwordVal },  
             success: onSuccess,  
             error: onError,  
             dataType: "json"  
});

и получаю ошибку ActionController :: InvalidAuthenticityToken.

Между прочим, следующая команда curl работает, хотя ...
curl -H "Content-Type: application / json" -c cookies.txt -d '{"email": emailVal, "password": passwordVal}' -X POST http://www.example.com/ login.json -i

5
задан Community 23 May 2017 в 10:29
поделиться