在公司的一个项目中,我是用axios想后台发送post请求传递数据,后台接受不到,经过多方查询,终于解决,在此记录一下。。。
情景描述:使用axios发送post请求向后台传递数据,后台接收的数据为null。改用$.ajax发送请求后台接却收到了。
原因:
- axios默认发送的数据格式为:application/json,也就是默认发送的是JSON字符串,无论后台还是前台接收时需要解析一下,否则就会接收不到数据。
- $.ajax默认发送的数据格式为:application/x-www-form-urlencoded,后台可以直接接收,不用另行处理。
解决方案:
- 简单粗暴,既然axios发送接受不到,那就直接改用$.ajax发送不就好了。(这只是皮一下而已,不推荐这样做哈,问题出现了要想办法解决问题,千万不能逃避问题)。
- 在使用axios向后台发送数据时,可以使用qs插件把数据序列化为URL的形式,这样后台就可以直接接受了,而不用处理了
- 使用axios向后台发送数据时,后台把JSON数据解析一下即可。(由于咱是搞前端的,不太了解后端,前端使用JSON.parse(JSON数据);解析数据。后台具体怎么做,咱就不知道了,所以具体怎么解析各位大神自行领悟吧,拜拜了您嘞!)