vue通过axios发送put/post等请求,配合后台consume"MediaType.APPLICATION_FORM_URLENCODED"

本文介绍了解决Axios默认PUT请求导致404的问题,详细说明了如何调整前端请求配置以匹配后端定义的方法,并给出了两种可行的解决方案。

后台方法:

@PUT
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.APPLICATION_JSON)
public ResultBean<?>  updateByPrimaryKeySelective(@BeanParam Factory factory){
    return factoryService.updateByPrimaryKeySelective(factory);
}

可以看到后台consumes,APPLICATION_FORM_URLENCODED类型的请求。如果采用axios默认的put请求方式,会报404因为不符合后台方法的调用规则(spring无法对应到相应的方法)。

注意后台参数使用了:@BeanParam。这要示MediaType必须为APPLICATION_FORM_URLENCODED。

而前台如果使用data:{}这种方式传参,虽然能调用方法但是无法获取参数:

115829_RMdY_3295928.png

解决方法

1、前台改为发送:

103021_yqry_3295928.png

通过这一段可将参数转化为url参数,从面符合后端要求。

2、还可以通过JSON实现 (这里以POST为例)。

120419_82Zu_3295928.png

120428_16vL_3295928.png

转载于:https://my.oschina.net/u/3295928/blog/1784847

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值