【发布时间】:2019-08-07 23:19:20
【问题描述】:
最近遇到如下错误:
在 'localhost:8080/api/xyz' 从源访问 XMLHttpRequest 'http://localhost:4200' 已被 CORS 策略阻止:跨源 请求仅支持协议方案:http、data、chrome、 chrome 扩展,https。
Angular 为这个问题提供了一个简单的解决方案,但我花了足够多的时间才找到它。在 Angular 的文档中,我也没有找到任何关于 SO 的简单内容。
显然,这个错误与 Angular 完全无关。我相信几乎每个开发人员都会不时遇到这个错误,我想分享一个简单的解决方案,以便我们继续处理重要的事情。
首先我的设置:
Angular 7,以及HttpClient的使用(doc)
我创建了一个小服务:
export class HelloServerService {
private readonly rootApi: string = 'http://localhost:8080/api/';
constructor(@Inject(HttpClient) private readonly http: HttpClient) {
}
public getHelloWorld(name: string): Observable<string> {
return this.http.get(this.rootApi + name, {responseType: 'text', params: {}}) as Observable<string>;
}
}
【问题讨论】:
-
做
private readonly rootApi: string = 'http://localhost:8080/api/'(你需要在请求URL中的'http://'协议部分)
标签: angular cors angular-cli cross-origin-read-blocking