我正在使用spring mvc来设置rest api,大多数配置都是通过spring boot项目自动设置的.在前端我使用angularjs和他们的$http模块向服务器发出ajax请求以获取资源.资源URL在我的控制器类中定义,但只匹配GET URL.我尝试过PUT和POST,但是这些方法不允许返回405方法,而且分别禁止403方法.
我的控制器看起来像这样
@Controller
@RequestMapping("/api/users")
public class UserController {
@Inject
UserService svc;
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
public List
并且与服务器的请求不匹配的URL看起来像这样
$http({
url: BASE_API + 'users/' + user.id,method: 'PUT',data:user
})
这会产生对localhost:8080 / api / users / 1的PUT请求,服务器会响应405 Method Not Allowed响应代码.
当服务器收到对localhost的HTTP GET请求时,正确处理相同的请求映射但使用RequestMethod.GET:8080 / api / users / 1
任何见解都会有所帮助.
PS以防需要包含弹簧启动依赖项
spring-boot-starter-webspring-boot-starter-securityspring-boot-starter-thymeleafspring-boot-starter-testcope>testcope>
spring-boot-starter-data-jpaspring-boot-starter-tomcatcope>providedcope>
谢谢
最佳答案