没有访问控制允许带有 java rest 后端的原始离子项目

No access control allow origin ionic project with java rest backend

我正在尝试通过我的离子应用程序访问我的 java 后端,但我收到以下错误:

XMLHttpRequest 无法加载 http://localhost:8080/mybackend/rest/... 否 'Access-Control-Allow-Origin' header 存在于所请求的 资源。因此不允许访问来源 'null'。

我做了这个配置: http://ionicinaction.com/blog/how-to-fix-cors-issues-revisited/

但还是不行。

我正在浏览器中使用 ionic serve 对此进行测试。

我假设您是 运行 启动于端口 8100 的内置离子服务器。如果您正在使用 link 中描述的代理设置,那么您应该达到你的 api 终点反对

http://localhost:8100/mybackend/rest/..

您似乎在直接访问 java 应用程序(通常在端口 8080 上)。如果您想直接访问您的 api 服务器,则需要在 java/spring 端设置 CORS。这样做是有据可查的。

否则您需要为 angular $http 服务配置 api url。要使用代理,您必须访问端口 8100。

你的问题有点含糊,比如你是如何测试这个的?什么设备? 我想一定是以下2种情况之一:

  1. 正在浏览器中测试(例如:Google Chrome) 由于您在本地主机上进行开发,您可能会遇到这些所谓的 CORS 错误。 Google Chrome 的一个简单解决方案是安装一个插件来处理这个问题。 安装 Google Chrome Allow-Control-Allow-Origin: * 扩展。 现在您的调用将不会抛出错误。

  2. deploy/build

  3. 后在模拟器或真机上测试

If you're using a newer version of Cordova (or the latest Ionic CLI) to develop your app, you may be experiencing http 404 errors when your app tries to make network requests.

这可以通过 Cordova Whitelist plugin 快速解决。

您可以在 Ionic docs: Cordova Whitelist 上找到更多文档。

解法:

运行 在您的 shell/terminal 中执行以下命令:

ionic plugin add https://github.com/apache/cordova-plugin-whitelist.git

您现在唯一需要做的就是将 属性 添加到您的 config.xml 文件:

<allow-navigation href="*" />