springboot+vue 支持@DELETE与@POST请求

本文档介绍了如何修改后台接口以支持POST请求进行删除操作,同时展示了前端如何通过请求拦截器将DELETE请求转换为POST请求,以解决某些网关不支持DELETE方法的问题。这一改动确保了前后端交互的顺畅,并保持了接口的一致性。
摘要由CSDN通过智能技术生成

后台修改
1、原请求方法

@Log("删除自定义查询字段")
    @ApiOperation("删除自定义查询字段")
    @PreAuthorize("@el.check('defQueryField:del')")
   @DeleteMapping
    public ResponseEntity<Object> delete(@RequestBody Integer[] ids) {
        defQueryFieldService.deleteAll(ids);
        return new ResponseEntity<>(HttpStatus.OK);
    }

2、修改支持POST请求

 @Log("删除自定义查询字段")
    @ApiOperation("删除自定义查询字段")
    @PreAuthorize("@el.check('defQueryField:del')")
    @RequestMapping(value = {"/delete",""}, method = {RequestMethod.POST,RequestMethod.DELETE})
    public ResponseEntity<Object> delete(@RequestBody Integer[] ids) {
        defQueryFieldService.deleteAll(ids);
        return new ResponseEntity<>(HttpStatus.OK);
    }

3、前台修改

// request拦截器
service.interceptors.request.use(

  config => {
    if (getToken()) {
      config.headers['Authorization'] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
    }
    //console.log("============="+baseURL)
    config.headers['Content-Type'] = 'application/json'
    //如果网关不支持DELETE方法,修改请求方法为POST
    if (config.method === 'delete')
    {
      config.method = 'post'
      if(config.url.substr(config.url.length-1,1)==='/'){
        config.url += 'delete'
      }else{
        config.url += '/delete'
      }
    }
    return config
  },
  error => {
    // Do something with request error
    console.log(error) // for debug
    Promise.reject(error)
  }
)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值