解决SpringSecurity阻止ajax的POST和PUT请求,导致403Forbidden的问题

摘要:
小问题当然,官网给的页面是JSP的页面,而我用的是thymeleaf引擎,所以它的meta标签直接拿来用会出问题,要做一点小小的修改,如下这里参考了一个博客至此,问题解决。

前言:
最近在整合springboot+springsecurity,在PUT请求的时候出现了403的问题,这里记录一下解决的过程


  1. 到Spring的官网去查查SpringSecurity的参考手册看看为什么会有403的问题
    解决SpringSecurity阻止ajax的POST和PUT请求,导致403Forbidden的问题第1张
    官网是这样解释问题的
    解决SpringSecurity阻止ajax的POST和PUT请求,导致403Forbidden的问题第2张
    SpringSecurity默认是禁止接收POST请求的,而GET是默认可以的,官网给出两个解决方案:1是发送请求时带上CSRF的token,2是不推荐的做法(把SpringSecurity的CSRF功能关掉)

  2. 在这里,采用第一种解决方法
    在参考手册中找到在ajax中包含CSRF的token的方法,如下
    解决SpringSecurity阻止ajax的POST和PUT请求,导致403Forbidden的问题第3张
    大致就是给页面加上两个meta标签,然后在页面加载的时候完成设置,让ajax请求都带上CSRF的token。

  3. 小问题
    当然,官网给的页面是JSP的页面,而我用的是thymeleaf引擎,所以它的meta标签直接拿来用会出问题,要做一点小小的修改,如下
    这里参考了一个博客
    解决SpringSecurity阻止ajax的POST和PUT请求,导致403Forbidden的问题第4张


至此,问题解决。

免责声明:文章转载自《解决SpringSecurity阻止ajax的POST和PUT请求,导致403Forbidden的问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇上传图片使用base64的优缺点snmp 介绍和Ubuntu安装使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

配合JAVA的AJAX使用

概要 Ajax是“Asynchronous JavaScript and XML”的简称,即异步的JavaScript和XML。 readyState属性用来返回当前的请求状态,有五个可选值。分别是0到4,每个值的含义如下描述。 0:“未初始化”状态, 表示已经创建一个XMLHttpRequest对象,但是还没有初始化请求对象。 1:“打开”状态,表示已经...

Vue-cli 创建的项目配置跨域请求(通过反向代理)---配置多个代理--axios请求

问题描述: 使用 Vue-cli 创建的项目,开发地址是 localhost:8080,需要访问 localhost:9000或https://m.maoyan.com或http://image.baidu.com上的接口 分析原因: 不同域名之间的访问,需要跨域才能正确请求。跨域的方法很多,通常都需要后台配置 不过 Vue-cli 创建的项目,可以直接...

【转】Unobtrusive Ajax的使用

【转】Unobtrusive Ajax的使用 Ajax (Asynchronous JavaScript and XML 的缩写),如我们所见,这个概念的重点已经不再是XML部分,而是 Asynchronous 部分,它是在后台从服务器请求数据的一种模型。MVC 框架内置了对 Unobtrusive Ajax 的支持,它允许我们通过 MVC 的 He...

jquery-tmpl 插件

做项目时页面上有处功能是:在页面有处列表、有添加,我添加修改或删除后要刷新这个列表,首先想到的是局部刷新,但我们一般说的局部刷新就是利于ajax去后台调用数据并显示,而这里是一整个列表就比较麻烦了,刷新重新加载列表时不止要加载列表,还需把table的标签这些都得重新加载下,写在js里或后台都得写 "<table class="datalist">...

SpringBoot22 Ajax跨域、SpringBoot返回JSONP、CSRF、CORS

1 扫盲知识   1.1 Ajax为什么存在跨域问题 因为浏览器处于安全性的考虑不允许JS执行跨域请求。   1.2 浏览器为什么要限制JS的跨域访问 如果浏览器允许JS的跨域请求就很容易造成 CSRF(Cross-site request forgery),中文名称:跨站请求伪造,缩写为:CSRF/XSRF。   1.3 什么是CSRF 2 Ajax...

web框架前言与学生数据库系统(附1.0源码)

  对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。 import socket def f1(request): """ 处理用户请求,并返回相应的内容 :param request: 用户请求的所有信息 :return: """...