关于axios请求java接口中的@RequestParam、@PathVariable及@RequestBody不同接参类型的用法

这篇具有很好参考价值的文章主要介绍了关于axios请求java接口中的@RequestParam、@PathVariable及@RequestBody不同接参类型的用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前端传json对象,后端指定接收json对象中的哪个参数。
(1)前端请求

axios({
    //请求方式
    method:'post',
    //后端接口路径
    url:'http://127.0.0.1:8080/api/deleteUserById',
    //注意这里使用的是params,该属性负责把属性名和属性值添加到url后面,一般和get配合使用,但也能    和post配合使用
    params: {
        id: id
    }
}).then((response) => {
    if(response){
          $.messager.alert("信息提示","删除成功!");
    }else{
          $.messager.alert("信息提示","删除失败!");
    }
}).catch((error) => {
    console.error('请求失败', error);
})

(2)后端接口(接参方式)

   //根据ID删除用户 请使用
    @RequestMapping(value = "/api/deleteUserById")
    @ResponseBody
    public boolean deleteUserById(@RequestParam(value="id",required = true) Integer id) {

        int rowsDeleted = userMapper.deleteUserById((long)id);
        if (rowsDeleted > 0) {
            return true;
        } else {
            return false;
        }
    }

二、axios使用restful规范的get请求,后端使用@PathVariable接参
后端接口路径+属性值;注意!!!路径后面有反斜杠/,注意不要写漏了,不然value就会变成路径的一部分,请求路径就会变成/sys/test后面跟上value的值,从而导致404
(1)前端请求:

//方法名为test,传入数据value
function test(value) {
  axios({
    //请求方式
    method:'get',
    url:'/sys/test/'+value,
  }).then((response) => {
    //response是一个返回的promise对象,该注释所在的这行一般对该promise对象进行处理从而获取数据
  }).catch((error) => {
    //对error进行处理
  })
}

(2)Java后端

//使用restful请求时对应的接收
@GetMapping("/sys/test/{accept}")
public void test(@PathVariable("accept") String(传进来的数据的类型) attributeName){
    //axios使用restful的方式进行传值,而Java就需要用到@PathVariable来接收url后的值,/sys/test/{accept}里的accept必须和@PathVariable("accept")里的accept名字一致,而且一个请求能拥有多个@PathVariable
}

三、@RequestBody接收类型
(1)前端请求

let id = $("#id").val();
let paras = {
    id: id
}
axios.post('http://127.0.0.1:8080/api/deleteUserById',paras).then(function (response){
   if(response){
       $.messager.alert("信息提示","删除成功!");
   }else{
       $.messager.alert("信息提示","删除失败!");
   }
})

(2)Java后端

    @RequestMapping("/api/deleteUserById")
    @ResponseBody
    public boolean deleteUserById(@RequestBody User user) {
        long id=user.getId();
        int rowsDeleted = userMapper.deleteUserById((long)id);
        if (rowsDeleted > 0) {
            return true;
        } else {
            return false;
        }
    }

(3)前端也可以使用ajax请求,但是注意data:JSON.stringify(paras)的写法与axios是不同的。文章来源地址https://www.toymoban.com/news/detail-606961.html

$.ajax({
				url: 'http://127.0.0.1:8080/api/deleteUserById',
				type: 'POST', // 或者其他请求方法,例如'GET', 'DELETE', 'PUT'等
				contentType: 'application/json', // 指定请求的数据类型为JSON
				data: JSON.stringify(paras), // 将JSON对象转换为JSON字符串并设置为请求体数据
				success: function(response) {
					if(response){
					   $.messager.alert("信息提示","删除成功!");
					}else{
					   $.messager.alert("信息提示","删除失败!");
					}
				},
				error: function(error) {
					console.error('请求失败', error);
				}
			});

到了这里,关于关于axios请求java接口中的@RequestParam、@PathVariable及@RequestBody不同接参类型的用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在SpringBoot中@PathVariable与@RequestParam的区别

    使用 @PathVariable 注解时,参数会从请求的路径中提取。在你的URL中,路径参数通常是通过 {} 包裹的形式出现,例如 /{getUserById}/123 . postman测试:http://localhost:8080/test/user/1 使用 @RequestParam 注解时,参数会从请求的查询参数中提取。在你的URL中,查询参数通常是通过 ? 后面的键值

    2024年02月19日
    浏览(33)
  • postman测试常用 5种传参类型,@RequestBody、@RequestParam、@PathVariable区别

    开启自动转换JSON数据的支持 @EnableWebMVC 请求json参数: 区别: @RequestParam用于接收url地址传参,表单传参【application/x-www-form-urlencoded】 @RequestBody用于接收json数据【application/json】 应用: 发送json格式数据为主,@RequestBody 非发送json格式数据为主,@RequestParam 定义传参的日期格式

    2024年02月09日
    浏览(53)
  • 前端传递对象参数,以及后端接受参数 @PathVariable @RequestParam @RequestBody 注解的使用

    太久没写前后端传递参数了,总是格式对不上号 提示:以下是本篇文章正文内容,下面案例可供参考 拼接在 url 地址中的 后端 前端 api 调用请求 拼接在 url 地址后面的 后端 前端 api 调用请求 放在请求头当中 后端 前端 api 调用请求 前端传递对象,后端接收对象 放在请求体中的

    2023年04月26日
    浏览(49)
  • 详细分析Java中的@RequestParam和@RequestBody

    该知识点主要来源于SpringMVC:SpringMVC从入门到精通(全) 慢慢作为一名全栈,偶尔看项目使用 @RequestParam 或者 @RequestBody ,对此需要做一个深度的总结,防止混淆 @RequestParam 注解用于从HTTP请求中提取查询参数或表单参数。 其中一些常用的属性参数包括 name 、 defaultValue 和 r

    2024年04月26日
    浏览(37)
  • Axios请求失败重刷接口

    页面接口请求时偶尔会出现 Network Error 异常报错,重新请求就会请求成功 接口没办法捕获异常原因,前端来做一次重刷解决问题 net::ERR_SSL_PROTOCOL_ERROR net::ERR_CONNECTION_REFUSED 记录请求map(以url为唯一标识),并设置单个接口重刷最大次数 格式:{ ‘https://xxxx/xxx?id=1’, 0 } 请求成

    2024年02月07日
    浏览(30)
  • 关于axios的两种拦截方式:请求拦截和响应拦截

    提示:这里可以添加本文要记录的大概内容: 提示:以下是本篇文章正文内容,下面案例可供参考 axios.interceptors.request.use() 请求拦截 axios.interceptors.request.use( function ( config ) { return config }) 这个方法的参数是一个函数,发送请求之前就会执行这个函数,函数里面的参数就是执

    2024年01月24日
    浏览(41)
  • vue 封装的axios接口,请求接口动态增加headers&responseType

    一、遇到一个需求,掉接口的时候,给headers中添加一个参数

    2024年02月16日
    浏览(45)
  • 使用axios请求@DeleteMapping注解的接口的方法

    前端使用delete方法访问接口,后端使用@DeleteMapping注解,方法内使用@PathVariable接参,注意注解中的: /{id} 的用法 前端接口: axios.delete(‘http://127.0.0.1:8080/api/deleteUserById/’+id) .then(response = { // 处理成功响应 console.log(‘删除成功’, response); }) .catch(error = { // 处理错误响应 consol

    2024年02月15日
    浏览(40)
  • 关于Axios发送Get请求无法添加Content-Type

    在拦截器中尝试给headers添加Content-Type: 如果是GET请求,会发现请求头中无论如何加不上Content-Type,查看源码: 如果data未定义则会将Content-Type设置为null; 那么修改data,也是从网上查到的: 普通GET请求可以正常添加Content-Type,但是如果需要将Content-Type改成“multipart/form-data”

    2024年02月04日
    浏览(49)
  • 前端开发中的ajax请求、axios封装

    目录 浏览器http请求 同步 js标签跨域、url 异步ajax、websock协议 ajax是异步的技术术语,最早的api是xhr(XMLHttpRequest) fetch es6 api axios 封装axios(无论用requst还是axios请求都会生效) src/utils/request.ts请求/响应拦截器封装 ts post请求request.post(url)和 通用请求request({url,method:\\\'post\\\'})对象

    2024年02月11日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包