一、该问题的重现步骤是什么?
我有如下的一个Controller类和一个接口。
@Slf4j
@RestController
@RequestMapping("/termite/survey/dike-units")
@Api(tags = "堤防工程单元管理")
public class DikeProjectUnitController {
@Autowired
private IDikeProjectUnitService dikeProjectUnitService;
@Autowired
private ITbResDykeService dikeService;
/**
* 删除
*
* @param guid
* @return
*/
@PostMapping("/deleteById")
@ApiOperation("删除记录")
public R<Boolean> delete(@RequestParam Long guid) {
try {
return R.data(dikeProjectUnitService.removeById(guid));
} catch (Exception e) {
log.error(getStackString(e));
return R.data(false);
}
}
}
2. 当我将接口声明成为@PostMapping的时候,接口是正常工作的。 如果我将接口声明成@DeleteMapping的时候,前端访问接口的时候会报出403 Forbidden的错误。
3. 我知道是权限的问题。 但是没有找到哪里可以配置或者控制。
二、你期待的结果是什么?实际看到的又是什么?
期望结果: 当我使用delete类型的rest接口进行访问的时候, 接口功能正常。
实际结果: 403 Forbidden
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
bladex 2.1.x
Java jdk版本: Java 11
操作系统: 国产麒麟系统, 类似于Linux。 这个问题应该和系统无关。
四、请提供详细的错误堆栈信息,这很重要。
前端直接报出 403。 然后我看了gateway的日志, 好像是没有这个接口的访问记录(这也是一个我奇怪的地方)。
五、若有更多详细信息,请在下面提供。
暂无。
详细错误信息是什么,参数格式是否传对,前端axios的request方法有没有指定delete方法
就是在浏览器上面会报错。其余任何地方都没没有错误日志。
xhr.js:195 DELETE http://localhost:1888/api/blade-termite-survey/termite/survey/reservoir-units/deleteByld?guid=1963149469900455938 403 (Forbidden)
附上前端的代码:
removepcxxData(row) {
console.log("row", row)
var index = this.form1.pcdyxxTbList.indexOf(row)
if (index !== -1) {
this.form1.pcdyxxTbList.splice(index, 1)
}
console.log, ("pcdyxxTbList", this.form1.pcdyxxTbList)
const params = {};
params.guid = row.guid;
postdeleteDfEngineerApi(params).then(res => {
console.log("res", res)
if (res) {
var index = this.form1.pcdyxxTbList.findIndex(item => item.guid === params.guid)
if (index !== -1) {
console.log('params.guid', params.guid);
this.form1.pcdyxxTbList.splice(index, 1)
}
}
})
},
export const postdeleteDfEngineerApi = (params) => {
return request({
// url: "/api/blade-termite-survey/termite/survey/dike-units/deleteById",
url: "/api/blade-termite-survey/termite/survey/dike-units/deleteById",
method: "delete",
params,
});
};
用postman调用接口试试,然后用一个原生的springboot项目,把你的代码拷贝过去再调用试试
扫一扫访问 Blade技术社区 移动端