Java 角度-Maven/弹簧靴CORS不工作

Java 角度-Maven/弹簧靴CORS不工作,java,angular,spring-boot,maven,Java,Angular,Spring Boot,Maven,我正在尝试设置一个具有角度前端和Maven/Spring引导后端的应用程序,并设置了我的first-REST控制器。我的问题是,当我从Angular IDE向后端发送GET HTTP请求时,它会返回一个错误,说明: CORS策略已阻止从源“”访问“”处的XMLHttpRequest:请求的资源上不存在“访问控制允许源”标头 我很困惑,因为我已经设置了“doFilter”来接受来自任何来源的所有请求,所以它不应该抛出这个错误。我的代码如下: 我的APIController: package com

我正在尝试设置一个具有角度前端和Maven/Spring引导后端的应用程序,并设置了我的first-REST控制器。我的问题是,当我从Angular IDE向后端发送GET HTTP请求时,它会返回一个错误,说明:

CORS策略已阻止从源“”访问“”处的XMLHttpRequest:请求的资源上不存在“访问控制允许源”标头

我很困惑,因为我已经设置了“doFilter”来接受来自任何来源的所有请求,所以它不应该抛出这个错误。我的代码如下:

我的APIController:

package com.SSCCoursework.controller;

import com.SSCCoursework.Model.SharePrice;
import com.SSCCoursework.Model.Shares;
import com.SSCCoursework.Model.SharesList;
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@CrossOrigin (origins = "http://localhost:4200", maxAge = 3600)
@RestController
public class ApiController
{ 
    File Shares_File = new File("Shares_Data.xml");
    ArrayList<Shares> shareList = new ArrayList<Shares>();

    @RequestMapping(value="/api/getData", produces="application/JSON")
    public Object getData()
    {   
        Shares share1 = new Shares();
        SharePrice share1_2 = new SharePrice();
        share1.setCompanyName("test");
        share1.setCompanySymbol("test");
        share1.setNumOfShares(123);
        Date date = new Date();
        share1.setLastShareUpdate(date);
        share1_2.setCurrency("dollar");
        share1_2.setValue(12345f);
        share1.setSharePrice(share1_2);
        shareList.add(share1);

        SharesList sharelist = new SharesList();
        sharelist.setBookList(shareList);

        return share1;
    }
}

我的Angular代码正试图使用GET方法(this.httpClient.GET(“”)将数据打印到浏览器控制台,但错误使其无法工作。我的后端是否缺少一个步骤?

只需在启动spring boot应用程序的主应用程序类中添加,您就可以轻松定义全局cors配置

  @Bean
  public WebMvcConfigurer corsConfigurer() {
    return new WebMvcConfigurer() {
      @Override
      public void addCorsMappings(CorsRegistry registry) {
       registry.addMapping("/**").allowedOrigins("http://localhost:8080")
                      .allowedMethods("PUT", "DELETE", "GET", "POST");
      }
    };
  }

有关更多详细信息,请查看

我已将您发布在主应用程序类中的代码添加到使用我的rest控制器详细信息编辑的主方法上方,但问题仍在发生。这可能与我的前端正在发出的请求有关吗?不,请查看该链接,您将找到更多详细信息我已遵循该指南并获得项目ect正在工作,因此感谢您的帮助。我仍然不确定最初是什么导致了问题,尽管我怀疑这可能是我在Maven构建中如何设置POM文件的。请发布角度服务代码。
  @Bean
  public WebMvcConfigurer corsConfigurer() {
    return new WebMvcConfigurer() {
      @Override
      public void addCorsMappings(CorsRegistry registry) {
       registry.addMapping("/**").allowedOrigins("http://localhost:8080")
                      .allowedMethods("PUT", "DELETE", "GET", "POST");
      }
    };
  }