如何向Thymeleaf生成的表单或链接添加自定义HTTP请求标头?
发布时间:2020-12-14 23:29:09 所属栏目:资源 来源:网络整理
导读:我们在 Spring Boot应用程序中使用JWT身份验证.为了防止CSRF攻击,我们希望使用自定义HTTP标头而不是cookie将令牌发送回服务器. 有没有办法让Thymeleaf使用XMLHttpRequest来生成生成中的链接?我们不希望通过javascript onclick处理程序替换所有th:href锚点
我们在
Spring Boot应用程序中使用JWT身份验证.为了防止CSRF攻击,我们希望使用自定义HTTP标头而不是cookie将令牌发送回服务器.
有没有办法让Thymeleaf使用XMLHttpRequest来生成生成中的链接?我们不希望通过javascript onclick处理程序替换所有th:href锚点的模板. 解决方法
简答:不!
答案很长:说实话,问题无效. Thymeleaf只是一个生成HTML / XML的库. XMLHttpRequest也称为AJAX(*),仅通过javascript使用. 此外,无法使用带有javascript的表单发送自定义标头.因此,您需要编写一些javascript来添加自定义标题以及表单.这个自定义的javascript应该由你编写.Thymeleaf没有自动化的机制. *对于未来的评论:我知道这不精确,不要迂腐;) 您可以将您的令牌添加到页面中[请参阅元标记]: <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.w3.org/1999/xhtml" layout:decorator="Layout"> <head> <title>Example</title> <meta name="_jwt" th:content="${yourToken}"/> </head> ... 然后在所有ajax请求中,您可以读取这些元值并添加为自定义标头. 例如,如果您使用的是jQuery,则可以全局配置所有jQuery ajax请求,如下所示: $(function(){ var _token = $('meta[name="_jwt"]').attr('content'); $.ajaxPrefilter(function (options,originalOptions,jqXHR) { jqXHR.setRequestHeader("your_jwt_token_header_name",_token); }); }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |