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问题。