各位大神 请教个 spring security 问题 getAjax("../menu/loadmenu", "", function (data) { 这样会被拦截 因为 这个地址在数据库里面没有存 如果 在xml 里面配置了 <security:http pattern="/main/*" security="none"/> 是可以访问了 但是在controller 里面就获取不到当前登录用户的信息了
认证高级PHP讲师
Spring Security で Ajax リクエストを行う方法について心配していますか? Spring Security では、リクエスト時の csrf トークンが null であるため、一般的な ajax リクエストは禁止されています。公式が解決策を提供しています。公式ドキュメント http://docs.spring.io/spring-security/site/docs/3.2.0.CI-SNAPSHOT/reference/html/csrf.html
具体的な方法は1. JSP ページの head タグに次のコードを追加します: < ;!-- デフォルトのヘッダー名は 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 リクエストを行う方法について心配していますか? Spring Security では、リクエスト時の csrf トークンが null であるため、一般的な ajax リクエストは禁止されています。公式が解決策を提供しています。公式ドキュメント http://docs.spring.io/spring-security/site/docs/3.2.0.CI-SNAPSHOT/reference/html/csrf.html
を参照してください。具体的な方法は
1. JSP ページの head タグに次のコードを追加します:
< ;!-- デフォルトのヘッダー名は 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/