【发布时间】:2018-02-12 22:25:07
【问题描述】:
我已经实现了简单的路由:
return RouterFunctions
.nest(path("/api/person"),
route(GET("/"), personService::findAllPeople)
.andRoute(GET("/{id}"), personService::findOnePerson)
.andRoute(POST("/add"), personService::addPerson)
.andRoute(DELETE("/delete/{id}"), personService::deletePerson)
.andRoute(PUT("/update"), personService::updatePerson));
最有趣的方法是DELETE,因为它只能通过Postman 工作。当我尝试在浏览器中输入/api/person/delete/1 时,它会在控制台中抛出404 而没有任何错误——有人知道为什么吗?在 Postman 中,我禁用了所有发送的标题,但 Postman 仍然可以工作,浏览器不能。
【问题讨论】:
-
"...尝试输入 /api/person/delete/1..." 你在哪里输入这个?
-
我在浏览器的url输入中输入
-
那行不通;您的浏览器将使用 GET 动词而不是 DELETE 发送请求。由于您没有匹配的 GET 路由,因此它返回 404。无论如何,您真的,真的不希望通过 GET 请求删除某些内容。
-
您需要通过 javascript/ajax 或任何其他正在使用您的 API 的方式发送 DELETE 请求。请参阅stackoverflow.com/a/786074/123422 了解原因。
-
@PaulAbbott 您能否将此评论作为答案?阅读 cmets 中回答的问题确实是浪费时间。
标签: java spring spring-webflux