Spring Security框架怎么设置响应为json格式

譬如北辰 发布于 2018/02/18 20:00
阅读 1K+
收藏 5

前端使用mui框架发送ajax,设置请求类型为json格式,后端的service使用@PreAuthorize("isAuthenticated()")注解进行是否登录的校验,当用户匿名时(未登录),Spring security框架会返回登录页面,xml配置如下:

    <!-- 过滤器配置 -->
    <http pattern="/login.jsp*" security="none" /> <!-- 不过滤此URL -->
    <http auto-config="true">
        <!-- 要保护的URL,只有拥有 ROLE_USER角色的用户才能访问 -->
        <form-login login-page="/login.jsp" authentication-failure-url="/login.jsp?error=1"/>
        <remember-me />
    </http>

而在实际测试过程中没有实现页面跳转,浏览器的控制台提示:

"parsererror" SyntaxError: Unexpected token < in JSON at position 2
    at Function.parse [as parseJSON] (<anonymous>)
    at XMLHttpRequest.u.onreadystatechange (mui.min.js:7)

之前使用jquery的ajax发送请求时并没有出现这个问题,应该怎么解决?

加载中
0
红薯官方
红薯官方

F12调试,看看 Network 面板的Ajax请求,看看返回的数据是什么。

另外,给你一个建议:login.jsp 搞成自动根据请求Header判断是否 Ajax 请求决定返回的内容:JSON 或 HTML 。

参考文章,如何判断 Ajax 请求:http://blog.csdn.net/lixld/article/details/52353276

 

上面的逻辑简单在 JSP 里面暴力写一写,输出 JSON 或者原封不动的输出 HTML 就可以啦。

0
大跃跃
大跃跃
根据请求头去判断
返回顶部
顶部