当我尝试删除时,我收到以下响应:405 方法不允许。 在我的日志中写道,允许 GET,但不允许 DELETE。
Java:
@ResponseBody
@RequestMapping(method = RequestMethod.DELETE, value = "/{id}")
public void delete(@PathVariable String id) {
speakerService.delete(id);
}
Angularjs
app.factory('SpeakerResource', function ($resource) {
return $resource('rest/speaker/:speakerId',
{
speakerId: '@speakerId'
},
{
'update': { method: 'PUT' }
},
{
'delete': { method: 'DELETE', params: { 'id': 'speakerId' }}
}
)
});
扬声器服务
this.delete = function (id, callback) {
SpeakerResource.delete({ speakerId: id }, function () {
callback();
});
}
最佳答案
我不知道你的完整代码,我也不是 AngularJS 的专家,但看起来你想向 URL <hopefullySomething>/{id}
发送一个 DELETE 请求。 (路径变量)。但看起来您发送了一个 DELETE 请求,因此一些带有参数 id <hopefullySomething>?id={id}
的 URL (请求参数)。
这个问题和答案进一步解释了路径变量和请求参数之间的区别 @RequestParam vs @PathVariable
关于java - 向服务器发送 DELETE 时出现错误 405 方法不允许错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26697071/