前后端分离,前端写了删除函数,后端无法接收这个数组 前端总提示Required request parameter 'ids' for method parameter type Integer[] is not present,后端是
@DeleteMapping(value="/deleteSaleChance",produces = "application/json;charset=UTF-8")
@ApiOperation(value = "删除",notes = "删除",httpMethod = "DELETE")
public ResultInfo deleteSaleChance(@RequestParam("ids") Integer[] ids){
return saleChanceService.deletSaleChance(ids);
}
前端是
//删除
deleteSalechance(saleChanceid){
let saleChanceIds=[]
if(saleChanceid==null){
//判断表格数据
let saleChances=this.$refs.saleChanceTable.selection;
console.log(saleChances)
if(saleChances.length==0){
this.$message.warning("没有要选择删除的营销机会");
return;
}
//拼接删除的参数
for(let i=0;ielse{
saleChanceIds.push(saleChanceid)
}
//做删除操作
this.$http.delete('saleChance/deleteSaleChance', this.$qs.stringify({ids:saleChanceIds},{arrayFormat:'repeat'})) .then(
resp =>{
if(resp.data.code==200){
this.$message.success(resp.data.message)
this.loadSaleChance()
}else{
this.$message.error(resp.data.message)
}
}
)
},
试了很多办法都没有办法让后端接收ids,怎么修改啊
你好,根据报错提示 应该是你的参数格式后端要求的不一样,能否看一下控制台 接口传参 参数
该回答通过自己思路及引用到各个渠道搜索综合及思考,得到内容具体如下:
根据您提供的代码,可能是前端发送的请求格式和后端接收的请求格式不一致导致的。您可以尝试按照以下方式修改前端代码,以便正确地向后端发送请求:
this.$http.delete('saleChance/deleteSaleChance', {
params: {
ids: saleChanceIds
},
paramsSerializer: function(params) {
return qs.stringify(params, {arrayFormat: 'repeat'})
}
}).then(resp => {
// ...
})
对于 axios
,可以使用 params
选项将参数作为 URL 参数发送,并使用 paramsSerializer
选项将数组格式化为重复的查询参数。在这种情况下,您需要在前端代码中引入 qs
库(可以使用 npm install qs
安装),并将其用于序列化 URL 参数。
如果您仍然遇到问题,请检查后端代码是否按照以下方式正确地接收了参数:
@RequestParam("ids") Integer[] ids
请确保请求的 Content-Type
为 application/x-www-form-urlencoded
,并且参数名为 ids
的数组值已正确地发送到后端。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
要不改成@responsebody试试
不知道你这个问题是否已经解决, 如果还没有解决的话: