Angular 即使在用@CrossOrigin(origins=";*";)注释控制器之后,交叉源请求也会被阻止?

Angular 即使在用@CrossOrigin(origins=";*";)注释控制器之后,交叉源请求也会被阻止?,angular,spring,spring-boot,Angular,Spring,Spring Boot,我有一个SpringBoot控制器,如下所示 @CrossOrigin(origins="*") public class FormController { @PostMapping(path="/basicForm") public String postResponseController( @RequestBody FormDomain loginForm) { System.err.println("basic form meth

我有一个SpringBoot控制器,如下所示

@CrossOrigin(origins="*")
public class FormController {
      @PostMapping(path="/basicForm")
 public String postResponseController(
              @RequestBody FormDomain loginForm) {
        System.err.println("basic form method called");
         return "file transfer completed successfully";
     }
}
我已经用
@CrossOrigin(origins=“*”)注释了控制器以启用CORS。
这是我的FormDomain类

public class FormDomain {
     private MultipartFile fileInput;

    public MultipartFile getFileInput() {
        return fileInput;
    }

    public void setFileInput(MultipartFile fileInput) {
        this.fileInput = fileInput;
    }
    }
以及调用控制器方法的角度脚本

 onClickSubmit(data) {
        this.http.post("http://localhost:8080/basicForm", data).subscribe( (ob)=>(console.log(ob)));
      }
尽管我已经注释了控制器以启用CORS,但在浏览器控制台中仍会出现以下错误

Access to XMLHttpRequest at 'http://localhost:8080/basicForm' from origin 'http://localhost:4200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

如何解决此问题?

您必须在
FormController
中添加
@RestController


@Controller
@组件
类的专门化,允许通过类路径扫描自动检测实现类。而
@RestController
@Controller
的专门化,它消除了对
@ResponseBody
的需要。您可以在
FormController
中参考Add
@RestController
,使用浏览器中的开发人员工具,检查是否发送了标题