http:// localhost:4200'已被CORS政策阻止:对预检请求的响应未通过

时间:2018-12-12 06:14:26

标签: angular angular-httpclient

我有一个似乎无法解决的问题。我想使用以下代码从Angular客户端向服务器发送http params请求,但出现异常

http://localhost:4200”已被CORS政策阻止:对预检请求的响应未通过

我想对此进行澄清,我是否在Angular中进行了任何杂乱操作,或者这是服务器端的问题,我不了解可以有人帮助我

验证:

login(username: string, password: string) {
    let params = new HttpParams();
    params = params.append('email', username);
    params = params.append('password', password);
    return this.http.post<any>('URL',{params:params})
      .pipe(map(user => {
        if (user && user.token) {
        }
      }),
        catchError(this.handleError)
      );
  }

3 个答案:

答案 0 :(得分:0)

是的,这是服务器端的问题,而不是客户端的问题。

您需要从服务器端为CORS启用localhost才能使用Angular代码中的API。

PS:要快速修复,您可以安装chrome plugin来启用CORS,但这是不推荐的方法。

答案 1 :(得分:0)

修改服务器以添加标头Access-Control-Allow-Origin: *,以启用来自任何域的跨域请求。

答案 2 :(得分:0)

在运行应用程序之前先在VSCODE中添加配置(F5)

“ runtimeArgs”:[“ --disable-web-security”]

在launch.json文件中