ajax put请求 后端springboot接收传参问题

今天使用RESTful写接口的时候发现使用put请求后端接收不到对象和参数. 网上的博客解决方式写的千篇一律却没有一个有用… 下面是我最后解决的代码, 希望能帮助到你

上代码

let _self = this;
$.ajax({
    url: '/stu/account',
    type: 'put',
    data: {
        stuUsername: _self.username,                     // 前端传一个对象account和一个参数newpassword
        stuPassword: _self.formChPass.password,
        newPassword: _self.formChPass.newpassword
    },
    success(data_result) {
        // ...
    },
    error() {
       // ...
    }
})

后端接收参数和对象 (对象无需加@RequestBody、参数需要加@RequestParam)
详见 stackoverflow

@PutMapping("/stu/account")
public int updateMyPassword(Account account, @RequestParam String newPassword) {
    // ...
}

还有另一种方式

let _self = this;
let jsondata = {
    stuUsername: _self.username,
    stuPassword: _self.formChPass.password
}
$.ajax({
    url: '/stu/account/' + _self.formChPass.newpassword,  // url中传一个参数
    type: 'put',
    contentType:"application/json",
    data: JSON.stringify(jsondata),                      // data中传一个json格式的数据
    success(data_result) {
        // ...
    },
    error() {
       // ...
    }
})

这时候对象要用@RequestBody 来接收, 参数用@RequestParam的话接收到为null,貌似只能用@PathVariable…

@PutMapping("/stu/account/{newpassword}")
public int updateMyPassword(@RequestBody Account account, @PathVariable(value = "newpassword") String newPassword) {
    // ...
}

over

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端使用ajax发送json到后端springboot的步骤如下: 1. 创建一个html页面,添加一个按钮或表单,用于触发ajax请求。 2. 在html页面中引入jquery或其他ajax库,以便能够使用ajax方法发送请求。 3. 编写ajax请求代码,包括请求的URL、请求方法、请求头、请求体等参数,并指定请求成功或失败后的回调函数。 4. 在后端springboot项目中创建一个controller,用于接收前端发送的json数据。 5. 在controller中编写方法,用于处理接收到的json数据,并返回处理结果。 6. 在springboot项目中启动应用程序,并打开html页面,点击按钮或提交表单,发送ajax请求。 7. 后端springboot应用程序接收请求后,执行对应的controller方法,处理json数据,返回处理结果。 下面是一个简单的示例代码,演示了如何使用ajax发送json到后端springboot: 前端html代码: ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>AJAX发送JSON数据到后端Spring Boot</title> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script> </head> <body> <h1>AJAX发送JSON数据到后端Spring Boot</h1> <input type="button" value="发送JSON数据" onclick="sendJson()"> <script type="text/javascript"> function sendJson() { var json = { "name": "张三", "age": 18, "gender": "男" }; $.ajax({ url: "/json", type: "POST", contentType: "application/json", data: JSON.stringify(json), dataType: "json", success: function(data) { alert("处理结果:" + data.result); }, error: function() { alert("请求失败!"); } }); } </script> </body> </html> ``` 前端的ajax请求代码: ``` function sendJson() { var json = { "name": "张三", "age": 18, "gender": "男" }; $.ajax({ url: "/json", type: "POST", contentType: "application/json", data: JSON.stringify(json), dataType: "json", success: function(data) { alert("处理结果:" + data.result); }, error: function() { alert("请求失败!"); } }); } ``` 后端springboot的controller代码: ``` @RestController public class JsonController { @PostMapping("/json") public Map<String, Object> handleJson(@RequestBody Map<String, Object> json) { Map<String, Object> result = new HashMap<>(); // 处理json数据 result.put("result", "处理成功"); return result; } } ``` 在这个示例中,前端发送了一个包含name、age和gender三个属性的json数据到后端springboot应用程序的/json接口。后端接收到json数据后,执行了handleJson方法,处理了json数据,并返回了一个包含result属性的json数据,前端收到响应后,弹出处理结果的提示框。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值