Spring Security Ajax 被攔截


背景是項目中使用Spring Security 進行安全控制

再使用Ajax的時候會報 403(ajax get  方式是沒問題的 post 的時候會報)

Spring Security 原本是 防止 CSRF 攻擊 現在 ajax 被誤傷了...

然后下面貼解決方法,頁面的head標簽里 下記追加

(這里要說的是用的是thymeleaf模板 所有才會有 th:如果是jsp的話使用EL表達式吧th:去掉就能用了)

<meta name="_csrf" th:content="${_csrf.token}"/>
<meta name="_csrf_header" th:content="${_csrf.headerName}"/>

然后用js取值

var header = $("meta[name='_csrf_header']").attr("content"); var token =$("meta[name='_csrf']").attr("content");

ajax中調用使用,其他和通常一樣 beforeSend 里寫下如下就可以了

 $.ajax({ url : "", type : "POST", data : "", contentType : 'application/json;charset=utf-8', //async : false,
            beforeSend : function(xhr) { xhr.setRequestHeader(header, token); }, success : function(resdata) {}, error : function(xhr, ajaxOptions, throwError) { }        });


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM