java - spring security spring mvc ajax 请求 controller 被拦截
PHP中文网
PHP中文网 2017-04-18 09:03:49
0
1
480
各位大神 请教个 spring security 问题  
  getAjax("../menu/loadmenu", "", function (data) {
 这样会被拦截 因为 这个地址在数据库里面没有存 
如果 在xml 里面配置了  <security:http pattern="/main/*" security="none"/>
是可以访问了 但是在controller 里面就获取不到当前登录用户的信息了
PHP中文网
PHP中文网

认证高级PHP讲师

全部回覆(1)
大家讲道理

你是煩惱在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標籤內加上以下程式碼:


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/

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!