我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Vue中使用axios调用后端接口的坑及解决

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Vue中使用axios调用后端接口的坑及解决

axios调用后端接口的坑

问题场景

Vue.js工程中使用axios调用后端接口(SpringBoot构建)出现后端接口无法获得数据的情况

总结了如下场景

@RequestParam用来处理application/x-www-form-urlencoded编码(HTTP协议请求头中不指定Content-Type默认就是application/x-www-form-urlencoded)。

@RequestParam可以接受简单类型的属性,也可以接受对象类型的属性,实质就是将Request.getParameter()中的键值对Map利用Spring的转化机制ConversionService配置,转化成参数接受对象或者字段。

@RequestParam在GET请求中是QueryString的形式,POST请求BodyData的值都会被Servlet接受并转化为Request.getParameter()参数集中。

@RequestParam在POST请求指定Content-Type为application/json;charset=UTF-8时会出现400错误。

@RequestParam不能使用@RequestParam JSONObject params接受参数,否则会出现500错误。

@RequestParam前端不能使用JSON.stringify()格式化参数,可以使用axios中的QS代替:QS.stringify()。

@RequestBody用来处理HTTPEntity(HTTP实体,HttpEntity实体即可以使流也可以使字符串形式)传递过来的数据,一般用于处理非application/x-www-form-urlencoded编码。

GET请求没有HTTPEntity所以@RequestBody并不适用,否则参数会乱码导致400错误。

在POST请求中使用@RequestBody时,通过HTTPEntity传递参数,必须要在HTTP请求头设置Content-Type为application/json;chatset=UTF-8,否则会出现415错误,SpringMVC通过使用HandlerAdapter配置HTTPMessageConverter来解析HTTPEntity中的数据,然后绑定到Bean上。

在POST请求使用@RequestBody时,前端必须使用JSON.stringify()格式化为JSON字符串数据。

注解支持类型支持的请求类型支持的Content-Type请求头类型
@PathVariableURLGETALL
@RequestParamURLGETALL
@RequestParamBodyALLapplication/form-data, application/x-form-www-urlencoded
@RequestBodyBodyALLaplication/json

调用后端接口 使用axios跨域问题

找到项目中vue.config.js

修改 devserver

devserver /api/app  等于 /https://www.lifewhw.top/app,

devserver下 配置ip 端口没问题 换成域名访问接口时如出现 Access-Control-Allow-Origin   跨域问题

去后端 请求头 设置 access-control-allow-origin: '*'

亲测有效!

1.如果调用一次axios 发送了两条get 请求 并且 其中一条状态码为301 说明是重定向 浏览器帮你从新发送了请求(原因是你前端路由配置的和后端不同,我是因为少配置了/出现发送两次get请求 其中一次为301)

2. 还有一冲情况就是 两次请求 第一次的请求头为options 这个原因自行百度一大推 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Vue中使用axios调用后端接口的坑及解决

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Vue中使用axios调用后端接口的坑怎么解决

这篇文章主要讲解了“Vue中使用axios调用后端接口的坑怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue中使用axios调用后端接口的坑怎么解决”吧!axios调用后端接口的坑
2023-06-29

前端vue3使用axios调用后端接口的实现方法

vue本身不支持ajax接口的请求,所以在vue中经常使用axios这个接口请求工具,下面这篇文章主要给大家介绍了关于前端vue3使用axios调用后端接口的实现方法,需要的朋友可以参考下
2022-12-08

vue3+vite+axios 配置连接后端调用接口的实现方法

这篇文章主要介绍了vue3+vite+axios 配置连接后端调用接口的实现方法,在vite.config.ts文件中添加配置,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
2022-12-08

前端如何调用后端接口进行数据交互详解(axios和SpringBoot)

一般来讲前端不会给后端接口,而是后端给前端接口的情况比较普遍,下面这篇文章主要给大家介绍了关于前端如何调用后端接口进行数据交互的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2023-03-19

Rainbond怎么调用Vue React项目的后端接口

这篇“Rainbond怎么调用Vue React项目的后端接口”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Rainbond
2023-06-30

vue中swipervue-awesome-swiper的使用方法及各种坑解决

这篇文章主要介绍了vue中swipervue-awesome-swiper的使用方法及各种坑解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-01-14

java后台调用接口及处理跨域问题怎么解决

这篇文章主要介绍“java后台调用接口及处理跨域问题怎么解决”,在日常操作中,相信很多人在java后台调用接口及处理跨域问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java后台调用接口及处理跨域
2023-06-29

vue中如何使用echarts实现动态数据绑定及获取后端接口数据

本篇内容主要讲解“vue中如何使用echarts实现动态数据绑定及获取后端接口数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue中如何使用echarts实现动态数据绑定及获取后端接口数据”
2023-07-02

vue cli使用iview自定义主题遇到的坑及解决

vue cli使用iview自定义主题遇到的坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-05-16

编程热搜

目录