gpt4 book ai didi

java - AngularJS 对我的 REST Web 服务的 DELETE 请求是纯文本形式吗?

转载 作者:行者123 更新时间:2023-12-03 11:47:48 24 4
gpt4 key购买 nike

因此,我尝试使用 REST 服务将 AngularJS 前端连接到 Java Spring 后端。

我的 DELETE 请求不断收到以下错误(注意扬声器?id=) - 为什么它生成扬声器?id=而不是扬声器/?

DELETE http://localhost:8082/rest/speaker?id=54200b6b772f1e7b0688307b 405 (Method Not Allowed) 

代码如下:

Java:

@RequestMapping(method = RequestMethod.DELETE, value = "/{id}")
public void delete(@PathVariable String id) {
speakerService.delete(id);
}

Angular JS 服务

this.delete = function (id, callback) {

SpeakerResource.delete({ id: id }, function () {
callback();
});

}

Angular JS 工厂

app.factory('SpeakerResource', function ($resource) {
return $resource('rest/speaker/:speakerId',
{
speakerId: '@speakerId'
},
{
'update': { method: 'PUT' }
},
{
'delete': { method: 'DELETE', params: {id: '@speakerId' } }
}

如果我使用 $http 语句,那么一切都会正常工作,但显然我想坚持使用工厂,因为 PUT/POST 方法工作正常!

    $http.delete('http://localhost:8080/rest/speaker/' + data.id);

干杯,

最佳答案

我认为你应该删除删除操作上的params对象或将参数重命名为speakerId,因为否则AngularJS无法在资源中设置url参数(你的url占位符是speakerId,但你的属性被命名为id)

关于java - AngularJS 对我的 REST Web 服务的 DELETE 请求是纯文本形式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25973575/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com