微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

localhost上的Angular2 CORS问题[重复]

如何解决localhost上的Angular2 CORS问题[重复]

您的后端似乎不接受跨域请求。

为了使其能够在Angular上运行,您必须使用代理,以便前端和后端使用相同的域(相同的主机名和相同的端口)

在开发模式下,您可以使用proxy.config.json文件设置代理。假设您的后端托管在上your- domain.com:80,并且您的后端请求以开头/backend,则该文件将包含以下内容

{
    "/backend/*":{
        "target": "your-domain.com",
        "secure": false,
        "logLevel": "debug"
    }
}

通过更改package.json中的以下配置,使您的开发HTTP服务器使用此文件

 "scripts": {
    "start": "ng serve --proxy-config proxy.config.json",
  }

不要忘了使用要求,是你的后端调用http://localhost:4200/backend/...,而不是http://your- domain.com/...

为了使其能够在远程服务器上运行,必须在Java Web应用程序(例如Nginx或Apache)上设置HTTP服务器,该服务器配置为执行与前面所述相同的操作。

解决方法

Failed to load URL: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘http://localhost:4200' is therefore not allowed access.

是否可以从Angular2修复此问题而无需更改服务器端(Java Spring Controller)中的代码?

我的密码

const headers = new Headers({'Content-Type': 'application/json','Access-Control-Allow-Origin' : '*'
});
return this.http.get(url,{headers: headers})
  .toPromise()
  .then(response => response.json().data as Hero[])
  .catch(this.handleError);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。