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

在Spring引导中启用HTTP请求POST

谢承颜
2023-03-14

我使用的是Spring boot,这里是maven依赖项

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

我试图用Angular创建一个HTTP请求帖子(我也有一个工作正常的GET请求),但我得到了这个

POST http://localhost:8080/xxxx/12/addEntry 405 (Method Not Allowed) 

在响应头中

HTTP/1.1 405 Method Not Allowed
Server: Apache-Coyote/1.1
X-Application-Context: application
Allow: HEAD, GET
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Wed, 09 Jul 2014 13:04:05 GMT

我意识到在响应中,allow没有POST方法。

控制器中的方法

@RequestMapping(value = "/xxxx/{uid}/addEntry", method = RequestMethod.POST)
@ResponseBody
public String createEntry(@PathVariable String uid, @RequestBody  String form) {
    System.out.println(form);
    return "index.html";
}

共有1个答案

史智志
2023-03-14

有时,特别是在初始测试期间,Spring的CSRF-Cross Site Request伪造保护默认启动并阻止POST请求发生,临时的解决方案是禁用csrf。这通常在扩展WebSecurityConfigurerAdapter的Web安全配置类中完成

@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .csrf().disable();
    }
}

注意:这在Spring boot version 2.0.0.rc1上正常工作,如果这不是永久工作,它是最好的

 类似资料:
  • 我正在开发一个应用程序,它由一个用Spring Boot开发的后端应用程序和一个用Angular 8开发的前端应用程序组成。现在,我想启用Cross Origin来让前端调用后端的API。 根据Spring关于CORS的文档,我编写了以下配置类: 第一次尝试是将AllowedOrigins设置为。 当我从Angular应用程序调用api时,我在控制台中发现了以下错误: CORS策略阻止了从来源“h

  • 我有一个spring boot应用程序,希望使用枚举常量来指定如下所示的值,但是,编译器生成了一个错误“类型不匹配:无法从常量转换为字符串”。下面是代码块 我知道我可以使用公共静态字符串代替枚举,但我想知道是否可以使用枚举常量?

  • HTTP 请求 数据绑定 使用 Context#Bind(i interface{}) 绑定一个请求内容体到 go 的结构体。默认的绑定器支持解析 Content-Type 是 application/json,application/xml 和 application/x-www-form-urlencoded 的数据。 下面是绑定请求数据到 User 结构体的例子 // User User s

  • 我正在尝试向一个创建自己的wifi热点并且只允许http请求的设备发出http请求。对于Android8和更低的http请求是成功的,但是对于Android9它们是失败的。虽然谷歌Pixel2使用的是Android9,但它似乎能发挥作用。 network_security_config.xml

  • 我有一个非常简单的HTML表单页面(它是src/main/resources/public/web.HTML中Spring Boot web应用程序的一部分),用于将一个字符串从文本区发布到Spring Boot web应用程序版本1.5.2。 和SpringBoot类来处理POST请求:

  • 我在Docker中运行spring boot应用程序时遇到了一点问题。 堆栈:Maven3+,spring boot(jpa/rest/jetty)-mysql-deploy in docker 所以,我的pom文件里有