离子原生app正在发送标题Origin:file://导致问题

joh*_*ine 6 android angularjs cordova ionic-framework

我已经开始在Ionic 1中构建简单的Todo应用程序,我发现了Origin头部的问题.(CORS相关)

如果我跑

ionic serve
Run Code Online (Sandbox Code Playgroud)

一切都在浏览器中工作正常,我可以在apache(tomcat)上向我的REST API发出请求.但是当我为Android甚至离子查看器构建我的应用程序时,所有请求都会失败.使用chrome调试器我设法找到问题.

本机应用程序发送标头(仅在Android上测试)

Origin: file://
Run Code Online (Sandbox Code Playgroud)

这导致我的服务器拒绝请求.在我看来,它应该与主机发送正确的Origin标头.下面附有更多细节的屏幕截图.

问题图

我该怎么办?

在这里找到相关主题:CORS,Cordova,AngularJs $ http和file://混淆

已经发布在这里,没有运气:https://forum.ionicframework.com/t/native-app-is-sending-header-origin-file-which-causes-problems/62388/1

编辑:发布时出现问题,如果我运行离子启动器(选项卡)模板只$http.post('http://myapp.com/apiv1/device')添加到控制器.

小智 1

看来问题来自服务器(特别是Tomcat)。

根据这个错误:

https://bz.apache.org/bugzilla/show_bug.cgi?id=60008

Tomcat 提供的默认 CORS 过滤器 (instances/shared/conf/web.xml) 不允许 POST 请求并返回 403。该问题从 Tomcat 版本 8.0.37 开始得到解决,因此升级服务器应该可以解决您的问题。

问候。

  • 我认为这不是正确的解决方案。这是IONIC的问题。您可能已经通过变通办法解决了这个问题。问题不同 (2认同)