Spring MVC 和 Angular - 原因:缺少 CORS 标头“Access-Control-Allow-Origin”

Posted

技术标签:

【中文标题】Spring MVC 和 Angular - 原因:缺少 CORS 标头“Access-Control-Allow-Origin”【英文标题】:Spring MVC & Angular - Reason: CORS header ‘Access-Control-Allow-Origin’ missing 【发布时间】:2021-02-11 03:01:23 【问题描述】:

当我尝试设置 Content-Type:application/json 时出现 CORS 错误原因:缺少 CORS 标头“Access-Control-Allow-Origin”

这是我在 Spring MVC 中的 Cors 覆盖:

@Override
public void addCorsMappings(CorsRegistry registry) 
    registry.addMapping("/**").allowCredentials(true).allowedMethods("GET", "POST", "PUT", "DELETE","OPTIONS").allowedHeaders("*").allowedOrigins("http://localhost:4200");

我的帖子 API:

@RequestMapping(value = "/seanPost", method = RequestMethod.POST)
public  String post(HttpServletRequest request, @RequestBody TrackFileStatusFindForm form ) 

我在 Angular 中的请求:

options = 
headers: new HttpHeaders()
    .set('Accept', 'application/json')
    .set('Content-Type', 'application/json')
;

this.http.post(this.APP_URL + '/seanPost', JSON.stringify(this.model), this.options)
.subscribe(
    data => 
        this.postId = data;
        console.log(this.postId);
    ,
    error => 
    console.log('Error occured', error);
  
) 

我的 Spring 项目在本地部署在 WebLogic 12c 上,如果有帮助,我将使用 https。

谢谢

【问题讨论】:

【参考方案1】:

试试这个:

private httpOptions =  headers: new HttpHeaders( 'Content-Type': 'application/json' ) ;

【讨论】:

没有仍然遇到相同的 cors 问题:跨域请求被阻止:同源策略不允许在 /seanPost 读取远程资源。 (原因:CORS 标头“Access-Control-Allow-Origin”缺失)。 那么你的错误是服务器端的。帮不了你,我对spring不熟悉。 好的。感谢您的帮助:)

以上是关于Spring MVC 和 Angular - 原因:缺少 CORS 标头“Access-Control-Allow-Origin”的主要内容,如果未能解决你的问题,请参考以下文章

从现有数据库生成 Angular 5 和 Spring mvc CRUD 应用程序 [关闭]

Spring 5 MVC Angular 5 App投掷404错误

带有angular2的spring mvc(rest)导致302暂时移动

在单个服务器上运行带有 Angular 2 的 Spring4MVC

Spring Security + Angular JS + Spring MVC Rest

Angular 6 - Spring MVC :: Options preflight request throws 500 internal Server Error