【发布时间】:2021-10-01 00:53:13
【问题描述】:
我有 Angular 前端和 Springboot 后端。
我的 Springboot 控制器带有 @CorsOrigin 注释,如下所示,根据我的阅读,它将在该控制器的所有端点上启用 CORS;但是由于某种原因并非如此:
@CrossOrigin(origins = "http://localhost:4200") // to prevent CORS error in Angular, use url of Angular app
@RestController
@RequestMapping("/api/v1/")
public class EmployeeController {
@Autowired
private EmployeeRepository employeeRepository;
@GetMapping("/employees")
public List<Employee> getAllEmployees() {
return employeeRepository.findAll();
}
@PostMapping("/employees/add")
public Employee createEmployee(@RequestBody Employee employee) {
return employeeRepository.save(employee);
}
}
我的 Angular 9 前端将使用一个表单来创建新员工。在提交表单时,我调用onSubmit,它调用saveEmployee,它调用goToEmployeeList:
onSubmit() {
console.log(this.employee);
this.saveEmployee();
}
saveEmployee() {
this.employeeService.createEmployee(this.employee).subscribe(data => {
console.log(data);
this.goToEmployeeList();
},
error => console.log(error));
}
/* Once we add new employee, we want to navigate to employee list, so we add new method
here to use router for that. */
goToEmployeeList() {
this.router.navigate(['employees']);
}
但是,当我在表单中输入员工信息并单击提交按钮时,我收到了 CORS 错误:
我该如何解决这个问题?
【问题讨论】:
标签: angular spring-boot cors angular-router