【发布时间】:2020-07-18 13:16:51
【问题描述】:
我有一个提交 POST 请求的“客户详细信息”表单。这是在 Spring Boot 应用程序中,并作为 Thymeleaf 模板实现。我刚刚在表单中添加了一点 AJAX 功能——当用户单击某个按钮时,它使用jQuery.ajax() 根据客户地址查找地理代码。 AJAX 调用是一个 GET 请求。
如果我输入客户表单并单击“提交”而不触摸 Ajax 按钮,它会正常提交。但是如果我先使用 Ajax 按钮,然后尝试提交表单,它会被 CsrfFilter 停止并显示消息“Invalid CSRF token found for http://...”。
我假设 Ajax 调用以某种方式使 CSRF 令牌过期,因此需要一个新令牌,但我该如何防止呢?
有一些类似this one 之类的问题,但在这种情况下,他们正在寻找一种将 CSRF 令牌添加到 Ajax 请求的方法。此外,我正在使用 Thymeleaf 视图,因此我将 CSRF 令牌自动插入到我的表单中——我不必手动添加它。
【问题讨论】:
标签: ajax spring-boot spring-security csrf