菜鸟学习笔记——关于Ruoyi框架$.ajax无法传输数据到后controller的问题

本文记录了在使用Ruoyi框架时遇到的$.ajax无法将数据传递到后台Controller的问题及解决方案。问题根源在于Ruoyi框架内集成了Shiro权限认证,若未在ShiroConfig中释放接口,会导致前端请求无法正常通信。解决办法是通过修改ShrioConfig,设置拦截器释放特定接口,如'/pages',从而确保Controller能接收到前端数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

虽然前几天曾经写过一次$.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权限认证框架那里出现,其他搭建的框架没有拦截器的就不必担心

写这段话也是提醒自己,免得以后再忘了。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值