axios介绍及与后台交互的坑

本文对比了Axios和Ajax在前端开发中的应用,特别是在数据交互方面。介绍了Axios的特点及其如何解决传统Ajax请求中常见的问题,如请求头类型不匹配导致的数据接收失败,并提供了具体的解决方案。

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

最近在开发项目的过程中有用到vue.js,在于后台交互的时候会用到axios。在初次使用axios的时候前端封装的数据在controller总是获取不到,在这里总结一下原因及解决办法。

介绍下axios

axios:一个基于primise用于浏览器和Node.js的Http客户端。

特点:支持浏览器和node.js

            支持promise

            能拦截请求和响应

            能转换请求和响应数据

            能取消请求

            自动转换JSON数据

             浏览器支持防止CSRF(跨站请求伪造)

promise:promise是作为异步编程的一种解决方案,比传统的回调函数和事件要合理。promise不会去传递一个回调函数给目标函数,而是让目标函数返回一个promise,来执行对应的事件。

我们采用回调模式实现异步编程时,容易产生回调地狱即在一个回调函数中嵌套多个回调函数,使得代码难以理解和调试.

基本用法:

 

 axios与ajax请求

axios默认请求头:Content-Type: application/json。

ajax默认请求头:Content-Type: application/x-www-form-urlencoded

就是因为这个原因,以前ajax用习惯了,导致我的controller一直接受不到数据

请看我刚开始错误代码:

前台页面请求:

 

可以看到我的请求数据格式是json,后台接受的为0(没有数据默认为0,实际是 1和5),controller中没有获取到数据。

前端解决方案1:

用URLSearchParams来传递参数,注意的是不支持所有的浏览器

 

解决方案2:

引入QS

 

 

后端解决方案:

1加注解@RequestBody:用来处理请求体中的json数据。这个就不贴图了

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值