虽然前几天曾经写过一次$.ajax格式,格式也对,后台的conttroller的接口也对,但是数据老传不进去
然后自己解决了,结果今天又写了一次,还是老问题,但是居然忘了上次怎么解决了,然后只能自己再摸索.....
原因在于若依已经绑定好shrio权限认证的配置,如果在后台添加一个Controller接口,必须在ShrioConfig那里设置释放接口,不然前端怎么也传不到后端的。
比如$.ajax是这样写
var pageNum="1";
$.ajax({
url:"/pages",//发送请求的地址
type:"POST", //请求方式,默认为GET
dataType:"JSON",//预期服务器返回的数据类型,String类型的参数;可用类型有(xml,html,json,jsonp,text)
data:{"pageNum":pageNum},
success:function (data){
}
})
Controller的代码
@RequestMapping("/pages")
@ResponseBody
public List<SysBlog> pages(String pageNum)
{
System.out.println(pageNum+"--------------------------------------------------------------------- ");
return sysBlogList;
}
接口都是 /pages但是 普通情况下无法输出信息
这个时候需要在
ruoyi-framework.src.main.java.com.rouyi.framework.config.ShrioConfig这个文件里找到
/**
* Shiro过滤器配置
*/
@Bean
public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager)这个方法里面
在 // 不需要拦截的访问 这段注释的下面添加
filterChainDefinitionMap.put("/pages", "anon,captchaValidate");这段代码
这样拦截器就释放 /pages 这个接口了,controller与$.ajax通信正常
这个问题只在ruoyi框架和其他Shrio权限认证框架那里出现,其他搭建的框架没有拦截器的就不必担心
写这段话也是提醒自己,免得以后再忘了。