【发布时间】:2018-04-25 09:55:08
【问题描述】:
我在服务器上有一个应用程序,我很确定我在这个应用程序中启用了 CORS,因为我有一个 AngularJs 客户端 (1.x) 并且它运行良好。
但是,现在我正在迁移到 Angular 4,但出现以下错误。
跨域请求被阻止:同源策略不允许读取位于 ||my-url|| 的远程资源。 (原因:CORS 标头 'Access-Control-Allow-Origin' 缺失)
我在这里阅读了很多问题,他们都说这是服务器端的问题,但正如我所说,我的服务器运行良好并且启用了 CORS,我的问题特别出在客户端
已编辑
我已经在我的 service.ts 中尝试过这个
createAuthorizationHeader(): RequestOptions {
// Just checking is this._options is null using lodash
if (isNull(this._options)) {
const headers = new Headers();
headers.append('Access-Control-Allow-Origin', '*');
headers.append('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
headers.append('Content-Type', 'application/json; charset=utf-8');
this._options = new RequestOptions({headers: headers});
}
return this._options;
}
getStudies(): Observable<any> {
const options = this.createAuthorizationHeader();
return this._httpService.get(this.WEB_API_URL, options)
.map((response: Response) => console.log(response.json()))
}
新编辑
似乎还不清楚 我有一个 Angular 应用程序 1.x 在与 Angular 4 中的这个新应用程序相同的服务器上运行,后端的 CORS 配置良好,这是因为另一个应用程序 ANGULAR 1 工作和工作之前,我必须在客户端更改一些参数我需要知道如何在角度 4 中做同样的事情
【问题讨论】:
-
那么在这种情况下,如果你能提供一些运行示例会很有帮助
-
发布你的代码结构
-
我已经编辑了问题
-
您没有在客户端上设置 CORs 标头...您在服务器上设置它们...在客户端上设置 CORs 标头会破坏 CORs 的全部目的
-
但服务器已启用它,我在 Angular 1.x 中有另一个客户端,它运行完美
标签: javascript angular typescript cors