Uncaught (in promise) Error: Request failed with status code 400

问题描述:在原本的项目中加入shiro来控制访问权限,结果之前还能请求的接口,加入了shiro之后就请求不到数据了,控制台报了 Uncaught (in promise) Error: Request failed with status code 400。

问题分析过程:400这个状态码一般是后端解析参数的时候出现了错误,我首先在浏览器中打开控制台,在网络中查看我发起的请求,可以看到我的请求是发送出去了的。

同时在后端我请求的接口处打上了断点。毫无疑问,没有进去这个请求。

前端请求发出了,后端使用Restful接受参数,参数个数也没问题,关键是之前还好好的,突然就报错了。

然后想了下,这个问题是在集成了shiro之后才报的错,而shiro本质是使用拦截器+过滤器来实现的,会不会是它在拦截请求的时候出了问题,有了思路,就去查了下shiro报错这方面的资料。

查了发现,问题还真出现在shiro身上(也是我的问题,url请求中存在中文字符),我用的shiro是1.9版本的,这个版本不支持url中有中文字符,不然会报错,无奈之下我就只好降版本了,测试1.6版本是支持url中出现中文字符的。

解决方法:最后我是通过降版本的方式来处理的问题,这确实有效。不过规范的做法还是应该修改接口,不让请求的url中存在中文字符,尽量使用字符和数字,或者使用POST请求一锅烩。

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

soutv

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值