Angular解决跨域问题

1,322 阅读1分钟

什么是跨域?

跨域是因为浏览器的同源策略引起的。

同源策略:从一个域名的网页去请求另一个域名的资源时,域名、协议、端口号,只要有一个不同就是跨域。

如何解决跨域

方法1

  1. 在Angular的工作目录中,和angular.json同级的目录下新建 proxy.config.json
    {
      "/api": {
        "target": "http://localhost:8080",
        "secure": false
       }
    }
    

说明:当我们访问http://localhost:4200/api 时,其实就相当于访问http://localhost:8080 的地址,比如在angular服务中配置地址,其实就是在访问http://localhost:8080/ctp/trades

    return this.http.get(`/api/ctp/trades`);
  1. 配置angular.json文件,在对象key 等于 serve 中的 options 下增加一项
    "options": {
            "proxyConfig": "proxy.config.json"
          }
  1. 修改package.json
    "start": "ng serve --proxy-config proxy.config.json",

重启: npm start