传url链接参数 前端get方法_前端传递url参数中有中文,后端传过来的有乱码,解决方案...

本文讲述了如何在API接口中,当URL参数为中文时遇到乱码问题,通过将GET请求改为POST并使用@RequestBody处理,成功解决了这个问题。作者提供了前后代码对比和前端调用示例,适合前端开发者和API设计者参考。

一、问题重现:

原代码:用get方式传递@ResponseBody

@RequestMapping(value = {"/findGroupByGroupName/{batchNo}/{groupSex}/{groupName}"}, method = RequestMethod.GET)

@ApiOperation(value = "模糊搜索查询分组情况是否成功", notes = "输入分组的批次,分组的性别、分组的部分名称", tags = {"查询"})

public ItooResult findGroupByGroupName(@ApiParam(name = "batchNo", value = "分组的批次", required = true) @PathVariable String batchNo, @ApiParam(name = "groupSex", value = "分组的性别", required = true) @PathVariable String groupSex, @ApiParam(name = "groupName", value = "分组的部分名称", required = true) @PathVariable String groupName) {

.....

}

url传递“groupName”为中文时,会显示乱码:

二、解决办法:

url传参去掉“groupName”参数,改为POST方式传参,为“groupName”加上@RequestBody 注解。

修改后代码:@ResponseBody

@RequestMapping(value = {"/findGroupByGroupName/{batchNo}/{groupSex}"}, method = RequestMethod.POST)

@ApiOperation(value = "模糊搜索查询分组情况是否成功", notes = "输入分组的批次,分组的性别、分组的部分名称", tags = {"查询"})

public ItooResult findGroupByGroupName(@ApiParam(name = "batchNo", value = "分组的批次", required = true) @PathVariable String batchNo, @ApiParam(name = "groupSex", value = "分组的性别", required = true) @PathVariable String groupSex, @ApiParam(name = "groupName", value = "分组的部分名称", required = false) @RequestBody String groupName) {

......

1}

前端代码:用post传递body形式selectGroup() {

searchGroup: string;

selectGroupUrl = 'physical-web/group/findGroupByGroupName/' + batchNo + '/' + this.studentSex;

let body = searchGroup;

this.http.post(selectGroupUrl, body).subscribe(

res => {

if (res.json().code == '0000' && res.json().data.length > 0) {

this.searchGroup = res.json().data;

for (let i = 0; i < this.searchGroup.length; i++) {

this.group.id = this.searchGroup[i].id;

this.group.groupName = this.searchGroup[i].groupName;

}

}

else {

mui.alert("查询结果为空,请重新输入查询条件");

}

}

)

}

url 传递的值:

问题解决!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值