84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
各位大神 请教个 spring security 问题 getAjax("../menu/loadmenu", "", function (data) { 这样会被拦截 因为 这个地址在数据库里面没有存 如果 在xml 里面配置了 <security:http pattern="/main/*" security="none"/> 是可以访问了 但是在controller 里面就获取不到当前登录用户的信息了
认证高级PHP讲师
你是烦恼在spring security中怎么进行ajax请求吧。一般的ajax请求在Spring Security中是被forbidden的,因为请求的时候csrf这个token为null。官方提供了一个解决办法,参考官方文档http://docs.spring.io/spring-security/site/docs/3.2.0.CI-SNAPSHOT/reference/html/csrf.html
具体办法就是1、在jsp页面的head标签内添加如下代码:<meta name="_csrf" content="${_csrf.token}"/><!-- default header name is X-CSRF-TOKEN --><meta name="_csrf_header" content="${_csrf.headerName}"/>
2、在ajax请求前添加如下代码:var token = $("meta[name='_csrf']").attr("content");var header = $("meta[name='_csrf_header']").attr("content");$(document).ajaxSend(function(e, xhr, options) { xhr.setRequestHeader(header, token);});
这样就能正常使用ajax请求了。可参考我的这篇博客http://jeesun.github.io/2016/03/27/Spring-Security%E5%A4%84%E7%90%86Ajax%E8%AF%B7%E6%B1%82/
你是烦恼在spring security中怎么进行ajax请求吧。一般的ajax请求在Spring Security中是被forbidden的,因为请求的时候csrf这个token为null。官方提供了一个解决办法,参考官方文档http://docs.spring.io/spring-security/site/docs/3.2.0.CI-SNAPSHOT/reference/html/csrf.html
具体办法就是
1、在jsp页面的head标签内添加如下代码:
<meta name="_csrf" content="${_csrf.token}"/>
<!-- default header name is X-CSRF-TOKEN -->
<meta name="_csrf_header" content="${_csrf.headerName}"/>
2、在ajax请求前添加如下代码:
var token = $("meta[name='_csrf']").attr("content");
var header = $("meta[name='_csrf_header']").attr("content");
$(document).ajaxSend(function(e, xhr, options) {
xhr.setRequestHeader(header, token);
});
这样就能正常使用ajax请求了。
可参考我的这篇博客http://jeesun.github.io/2016/03/27/Spring-Security%E5%A4%84%E7%90%86Ajax%E8%AF%B7%E6%B1%82/