关于angularjs:离子应用程序中的CORS问题

CORS issue in ionic app

我正在构建一个简单的离子/angular移动应用程序。我正在使用IntelliJ IDEA进行开发。

在开发过程中,我仅使用Intellij终端的" ionic serve"命令在浏览器中启动移动应用程序。该应用程序连接到部署在Tomcat服务器上的REST服务。

当应用尝试连接到REST服务时,它在浏览器控制台中显示以下错误

XMLHttpRequest cannot load http://localhost:8080/MyWorkflows/rest/UserService/users. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8100' is therefore not allowed access. The response had HTTP status code 500.

我知道这是由于REST服务在不同的域上运行,因此浏览器将其阻止而发生的。但是,我不知道该如何进行?

有人可以帮忙吗?


在Tomcat上部署的REST服务中,您应该设置Access-Control-Allow-Origin:http:// localhost:8100,并且需要允许与Access-Control-Allow-Methods一起使用的http请求方法:POST, GET,选项。

这告诉浏览器您的服务允许在http:// localhost:8100上运行的Web应用访问该服务。浏览器根据资源请求检查此内容。对于除GET以外的http请求方法,可能会添加一个附加的Preflight Request,因此您还需要让WebService对此进行回答。

请参阅https://en.wikipedia.org/wiki/Cross-origin_resource_sharing


如果不控制远程终端,请使用Ionic CLI代理服务器。在Ionic博客上有一篇非常好的操作方法文章:在Ionic中处理CORS问题。