Rumah > Soal Jawab > teks badan
各位大神 请教个 spring security 问题
getAjax("../menu/loadmenu", "", function (data) {
这样会被拦截 因为 这个地址在数据库里面没有存
如果 在xml 里面配置了 <security:http pattern="/main/*" security="none"/>
是可以访问了 但是在controller 里面就获取不到当前登录用户的信息了
大家讲道理2017-04-18 09:05:49
Adakah anda bimbang tentang cara membuat permintaan ajax dalam keselamatan musim bunga? Permintaan ajax am adalah dilarang dalam Spring Security kerana token csrf adalah batal apabila meminta. Pegawai itu menyediakan penyelesaian, rujuk dokumen rasmi http://docs.spring.io/spring-security/site/docs/3.2.0.CI-SNAPSHOT/reference/html/csrf.html
Kaedah khusus ialah
1. Tambahkan kod berikut dalam teg kepala halaman jsp:
<meta name="_csrf" content="${_csrf.token}"/>< br>< ;!-- nama pengepala lalai ialah X-CSRF-TOKEN -->
<meta name="_csrf_header" content="${_csrf.headerName}"/>
2. Tambahkan kod berikut sebelum permintaan ajax:
var token = $("meta[name='_csrf']").attr("content");
var header = $(" meta [name='_csrf_header']").attr("kandungan");
$(dokumen).ajaxSend(fungsi(e, xhr, pilihan) {
xhr.setRequestHeader(header, token);
});
Dengan cara ini, permintaan ajax boleh digunakan seperti biasa.
Sila rujuk blog saya http://jeesun.github.io/2016/03/27/Spring-Security%E5%A4%84%E7%90%86Ajax%E8%AF%B7%E6% B1% 82/