У меня есть приложение Rails 3, и я использую Warden для аутентификации. Он работает нормально, но когда я пытаюсь использовать AJAX (POST), доступ к одному из контроллеров, приложение выходит из моей учетной записи и просит меня снова войти в систему.AJAX call log out my account
0
A
ответ
0
Это из-за рельсов CSRF проверка маркера. Существует несколько различных способов справиться с этим:
- Хакер, грязный ярлык - просто сделайте вызов AJAX использованием HTTP GET вместо POST. GET не будет искать маркер CSRF по умолчанию
других грязного ярлыка - отключить проверку CSRF для данного конкретного действия в контроллере
protect_from_forgery :except => :create
Правильно реализовать CSRF токен с AJAX звонков, есть много руководств там , например this one или this one
+1
Определенно не рекомендую не использовать токены CSRF, это будет большой проблемой безопасности. – varatis
Смежные вопросы
- 1. jQuery ajax call: "turn out \"
- 2. expire my playstore account
- 3. JSF Spring log log out
- 4. My $ .ajax call ничего не делает
- 5. JQuery Ajax Call Corrupting my data
- 6. My jQuery Ajax Call to pure Javascript
- 7. Ajax call in my aspx page
- 8. ajax call ignoring my if statement
- 9. Ajax call when session time out
- 10. Google Auth2.0 log out
- 11. Tastypie auto log out
- 12. log out button in html
- 13. Android Edit Call Log
- 14. joomla custom forms log out out
- 15. log out out на основе измененных привилегий
- 16. Log4net log to Azure Storage Account
- 17. Создание кнопок smart login/my account
- 18. Infer my Garbage Collection Log
- 19. Laravel log different user out
- 20. iOS call log access api
- 21. ajax post call not refreshing my controller view в mvc
- 22. Wpf Expression Call-out clipping
- 23. Grails Spring Security Rest Log out
- 24. application ajax time out
- 25. Один ajax call block other ajax call
- 26. My Call Spring Controller не удалось
- 27. Netlogo: спросите ссылку «my-in-turtle» и «my-out-turtle»
- 28. CakePHP AJAX call
- 29. Ajax call every minute
- 30. Facebook connect log out пока еще пользователь
есть несколько причин, но для стартера вы можете проверить, есть ли <% = csrf_meta_tag%> в макете приложения. –