删除时出现 400 Bad Request 错误
Posted
技术标签:
【中文标题】删除时出现 400 Bad Request 错误【英文标题】:400 Bad Request error on Delete 【发布时间】:2015-11-16 13:18:38 【问题描述】:我和我的 m8s 正在使用 Spring MVC、angularJS 等为我们的大学开发一个手稿处理系统。我们在从数据库中删除用户时遇到了一些问题。
我们总是得到 HTTP 状态 400 - 所需的字符串参数“用户名”不存在
输入状态报告
消息所需的字符串参数“用户名”不存在
说明客户端发送的请求语法错误。
控制器:
@Secured( "ROLE_ADMIN" )
@RequestMapping(value = "/delete/userName", method = RequestMethod.DELETE)
public void deleteUser(@RequestParam String userName)
LOGGER.info("Deleted user: " + userName);
userManagerService.deleteUser(userName);
ManuscriptAdminService.js 的方法:
function deleteUser(userName)
$log.info("Delete selected user "+new Date());
$http.delete('delete/'+userName).then(function(data)
console.log(data);
,function(error)
$log.error("Error occured while admin tried to delete user "+new Date());
);
ManuscriptAdminController.js 的方法
vm.showModalUserDelete = function(index)
$log.info("Show user delete modal "+new Date());
var modelInstance = $modal
.open(
animation : true,
templateUrl : 'htmlcontent/content/admin/modal/userDeleteManageModal.html',
controller : 'ManuscriptAdminModalinstacneController',
controllerAs : 'ManuscriptAdminModalinstacneController',
size : 300,
resolve :
items : function()
return ManuscriptAdminService.getUserName(index);
);
modelInstance.result.then(function (result)
ManuscriptAdminService.deleteUser(result);
, function ()
$log.info('Modal dismissed at: ' + new Date());
);
;
【问题讨论】:
【参考方案1】:您在 /delete/userName
中使用了 URI 模板变量,因此您需要在参数上使用 @PathVariable
注释:
@Secured( "ROLE_ADMIN" )
@RequestMapping(value = "/delete/userName", method = RequestMethod.DELETE)
public void deleteUser(@PathVariable String userName)
LOGGER.info("Deleted user: " + userName);
userManagerService.deleteUser(userName);
【讨论】:
以上是关于删除时出现 400 Bad Request 错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 Apache/NginX 部署时出现 Django Bad Request(400) 错误
在 React Native 中将图像上传到 Firebase 存储时出现错误 400 Bad Request
带有 DynamoDB 后端的 terraform:创建新工作区时出现 400 Bad Request
尝试从 Spark 访问 S3 时出现 400 Bad Request
使用 Jackson JSON Mapper 在 JSON 到 POJO 之间映射时出现 400 Bad Request