当前位置: 首页 > 知识库问答 >
问题:

Spring Boot-“状态”:405,“错误”:“方法不允许”[关闭]

郑高驰
2023-03-14

我使用指南创建了一个简单的Spring Boot REST服务,当我发帖到http://localhost:8080/greeting时,遇到以下错误

-“状态”:405,“错误”:“不允许使用方法”,“异常”:“org.springframework.web.HttpRequestMethodNotSupportedException”,“消息”:“不支持请求方法'POST'”,

我没有找到任何关于如何解决错误的信息。我使用的是版本1.3.2。发布并使用mvn spring-boot:run启动Tomcat。

指南说默认情况下允许所有HTTP方法。那么为什么它回应说不支持POST呢?

当我发布到这个URL时,如何让Spring调用controller方法?

共有1个答案

杨经武
2023-03-14

正如SpringRest指南中所说,

@requestmapping默认情况下映射所有HTTP操作

但是,如果按照他们的建议,您添加了允许的http方法的规范:

@RequestMapping(value = "/greeting", method = {RequestMethod.GET, RequestMethod.POST})
public Greeting greeting(@RequestParam(value="name", defaultValue="World") String name) {
    return new Greeting(counter.incrementAndGet(),
                        String.format(template, name));
}

S.w.s.m.m.a.RequestMappingHandlerMapping:将“{[/greeting],methods=[GET POST]}”映射到public hello.greeting hello.greetingController.greeting(java.lang.String)

还有,你是怎么发帖的?我可以推荐谷歌Chrome的高级REST客户端。如果您从浏览器中的表单发布,请尝试点击f12并检查“网络”选项卡,以检查您发布的内容是否与您认为发布的内容完全一致。

张贴到错误的URL,例如HTTP://localhost:8080/greeting而不是HTTP://localhost:8080/greeting将导致方法不允许错误,尽管实际上错误是URL中的错误,而不是HTTP方法的选择。

要查看请求处理的更详细日志记录,请在src/main/java文件夹旁边创建一个src/main/resources文件夹,并在其中创建一个application.properties文件。将此行添加到该文件

logging.level.org.springframework.web=DEBUG

然后,如果您尝试发布到未映射的URL,例如/greeting而不是/greeting,您将在日志中看到以下行:

RequestMappingHandlerMapping:正在查找路径/Greetines的处理程序方法RequestMappingHandlerMapping:未找到[/Greetines]的处理程序方法

 类似资料:
  • 问题内容: 经过研究后,我在问这个问题。我确实遵循了针对此类错误的解决方案,但对我不起作用。在下面的代码中出现错误的任何建议。我正在创建一个REST API,但是当我请求url时却出现405错误。下面是URI正在请求。 下面是代码片段。 web.xml: 问题答案: 将此更改为并尝试,

  • 问题内容: 我正在开发flask注册表格,但收到错误消息: 码: registration.html: 当我访问时,我收到错误消息。我究竟做错了什么? 问题答案: 这是因为在定义路由时仅允许POST请求。 当你在浏览器中访问时,它将首先执行GET请求。只有提交表单后,浏览器才会执行POST。因此,对于像你这样的自我提交表单,你需要同时处理两者。 使用 应该管用。

  • 我正在尝试使用angularJs和$http发布一个表单。post方法。但每当我执行此函数时,它都会给我以下错误:加载资源失败:服务器响应状态为405(不允许使用方法),我不知道该怎么办。(Im使用visual studio 2015)

  • 我试图用jQuery做一个POST请求,但是我得到了一个错误405(不允许使用方法),我正在使用Laravel 5 这是我的代码: jQuery 超文本标记语言 控制器 JQuery错误http://localhost/laravel5.1/public/empresas/eliminar/5405(不允许方法)。 url值为 数据值是 如果我更改为request它工作正常,但我想做一个post请

  • 我有Laravel 5.4和VueJs应用程序。当我在Localhost中运行它时,它已经工作了,但是现在。我把主机放在一台服务器上,它会给出错误信息 这是我在VueJS的POST请求 这是api.php

  • 问题内容: 我刚刚开始学习Flask,并且我正在尝试创建一种允许POST方法的表单。 这是我的方法: 而我的: 加载表单(在收到GET时将其呈现)可以正常工作。但是,当我单击“ 提交”按钮时,出现一个。 为什么不显示“ Hello”? 问题答案: 除非存在输入错误,否则你的表单将提交给路由方法,除非你输入错误,否则应调整表单的属性以指向视图