![](/img/trans.png)
[英]Angular 6 + Spring Boot: Error: "from origin 'http://localhost:4200' has been blocked by CORS policy"
[英]CORS origin error spring boot + angular on localhost
我正在尝试通过 Angular 应用程序使用在 spring 引导上开发的 Restful api 应用程序,我在下面遇到了这个问题:
@RestController @RequestMapping("/api") @CrossOrigin(origins = "http://localhost:4200/") public class ProductController { @Autowired private ProductService productService; @PostMapping("/add") public void addProduct(@RequestBody Product p){ productService.addProduct(p); } @GetMapping("/list") public List<Product> getListOfProducts(){ return productService.getAllProducts(); } }
import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { Observable, throwError } from 'rxjs'; import { catchError, retry } from 'rxjs/operators'; @Injectable({ providedIn: 'root' }) export class ProductsService { constructor(private http: HttpClient) { } getProducts(){ return this.http.get("localhost:4200/api/list"); } }
import { Component, OnInit } from '@angular/core'; import { ProductsService } from '../products.service'; @Component({ selector: 'app-products', templateUrl: './products.component.html', styleUrls: ['./products.component.css'] }) export class ProductsComponent implements OnInit { constructor(private products:ProductsService) { } ngOnInit() { this.products.getProducts().subscribe((res)=>{ console.warn(res); }) } }
尝试运行 angular 应用程序时,我遇到此错误:
Access to XMLHttpRequest at 'localhost:4200/api/list' from origin 'http://localhost:4200' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension ,铬不受信任,https。
@CrossOrigin(origins = "*")
看一下这个。
替代答案。 您可以添加到配置 class:
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedMethods("HEAD", "OPTIONS", "GET", "POST", "PUT", "PATCH", "DELETE")
.allowedOrigins("*")
.maxAge(3600);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.