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

Spring Boot Cors问题:尝试了所有方法,但POST不起作用

涂煌
2023-03-14

我在春靴上有个CORS问题。Get请求使用Spring的Java CORs配置(使用WebMvcConfigurer)。POST请求不起作用。

我不仅尝试了Java配置,还尝试了注释(@crossorigin())和过滤器(顺序为highest_prehence)。注释对我来说似乎从来都不起作用--即使是对Get请求也是如此。

@Bean
public WebMvcConfigurer corsConfigurer() {
    return new WebMvcConfigurer() {
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/greeting-javaconfig").allowedOrigins("http://localhost:3000");
            registry.addMapping("/greeting-posttest").allowedOrigins("http://localhost:3000");
//                .allowedHeaders("Access-Control-Request-Method", "Origin", "Access-Control-Request-Headers")
//                .allowedMethods("POST", "OPTIONS", "HEAD", "GET", "PATCH")
//                .exposedHeaders("Access-Control-Allow-Origin");
        }
    };
}
//    @CrossOrigin(origins = "http://localhost:3000")
@PostMapping("/greeting-posttest")
public Greeting greetingPostTesting(@RequestBody String content) {
    System.out.println("==== in greeting post ====");
    Greeting newGreeting = new Greeting(counter.incrementAndGet(), content);
    return newGreeting;
}
export function apiCall(method, path, data){
  return new Promise((resolve, reject)=>{
  return axios.post("http://localhost:8080/greeting-posttest",{content: "POSTING!"}, config).then(res=> {
      console.log("successful");
      console.log(res);
      return resolve(res.data)
  }).catch(err => {
      console.log("caught in apiCall")
      console.log(err);
      return reject(err.response);
  })
})
}

const config={
  headers: {
  'Origin': 'http://localhost:3000',
  // 'X-Requested-With': 'http://localhost:3000',
  'Access-Control-Request-Method' : 'POST, OPTIONS',
  'Access-Control-Request-Headers': 'access-control-allow-origin'
  }
}
Forbidden header name: Origin
Forbidden header name: Access-Control-Request-Method
Forbidden header name: Access-Control-Request-Headers
Error:"Network Error"

我的前台:https://github.com/eeasuper/practicenavermockingweb

我的apicall在前台:https://github.com/eeasuper/practicenavermockingweb/blob/master/src/services/api.js

前端存储库中的后端文件与本文无关。)

共有1个答案

甄鹏云
2023-03-14

在Spring Security之后,我让它在云上与我的React-Redux项目一起工作。此外,按照用户bvulaj在这个github链接底部给出的指示,我的React项目可以在LocalHost上工作。我的react版本是16.8.6,我的Spring版本是4.0.0。

 类似资料:
  • index.js//后端 付款js//前端Raect组件 axios.js xhr。js:177个职位http://localhost:3000/payments/create?total=4534404(未找到) 未捕获(promise)错误:请求失败,状态代码404在createError(createError.js:16)在结算(settle.js:17)在XMLHttpRequest.h

  • 我使用HttpURLConnection通过POST向服务器发送数据。我设置标头,然后获取输出流并写入一些字节,然后关闭输出流。 我试图从给定的网址获取时间表细节的下一页。但是有些我怎么也得不到结果。请帮助任何人,如果你知道这个代码中的任何问题。 我看到的是有错误的第一页,而不是第二页。"您选择的电台组合无效。请致电LIRR旅游信息中心,电话号码是(718) 217-5477,向客服代表咨询更多信

  • 我正在尝试导入一个新的字体来实现它到我的p元素的css中。但是我导入的字体由于某种原因无法显示。这是我的代码: null null 你知道是什么导致了这个问题吗?

  • 我尝试使用post方法生成表单,我想检查字段是否用isset()填充。但即使字段为空,isset也会返回true。 下面是一个简化的代码:(页面名称:test.php,post方法指向自身) 当您提交时,它总是响应“字段集”,即使您没有在“测试”输入中输入任何内容。 谢谢你的回答!

  • 所以我需要邮递员的文件。问题是我的API需要身份验证,所以我不能使用Swagger来测试它们。当我从控制器中删除授权并使用Swagger时,它会工作,但使用Postman时,它会返回以下错误。 请求的邮递员标题: