У меня есть веб-сайт, созданный с помощью 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