android - 在某些 Android 设备中,Cordova 不会根据请求发送来源

标签 android cordova cors android-webview cordova-plugins

这是在某些 Android 设备上发生的问题。

我有一台 Samsung Galaxy A5 (2017),Google Chrome 版本 76.0.3809.89 和 Android 版本 8.0.0。

当我第一次在此设备上部署我的 Cordova 应用程序并发出 POST 请求时,我收到有关 CORS 的错误:

Access to XMLHttpRequest at 'http://foo.com/bar' from origin 'file://' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

我可以从 Chrome 的开发工具网络选项卡中看到这个 POST 请求没有 origin 参数。

如果我从任务管理器关闭应用程序并再次启动它,我可以成功发出此请求并且 chrome 会根据请求发送“origin”参数。

如果我从设备的设置中删除应用程序的数据,我可以再次重现该问题。

我完全确定这不是 Content-Security-Policycordova-whitelist-plugin 配置的问题,因为正如我之前提到的,在其他一些android 设备应用程序工作正常。

我需要提及的另一件事是,使用人行横道插件时我没有遇到这个问题。

最佳答案

这是 Chromium webview 上的一个公开错误,对 76 版本很有趣;在此特定版本中,OOR-CORS 在第一次运行时保持启用状态。

https://bugs.chromium.org/p/chromium/issues/detail?id=991107#c14

一个变更列表会直接合并到76分支。

关于android - 在某些 Android 设备中,Cordova 不会根据请求发送来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57326410/

相关文章:

java - 自定义适配器以制作具有不同项目的 ListView

android - 如何将 LaTex 文本从服务器解码到 Android TextView?

cordova - 将现有 Cordova 项目添加到 Visual Studio

mod-python - 访问控制允许来源 : * not working?

java - 服务器返回 CORS header ,浏览器仍然抛出 Cross-Origin Request Blocked 错误

java - 当我启动并启动时,我的应用程序崩溃了?

android - 在嵌套布局上访问 Android View

cordova - 您如何将phonegap 应用程序部署到Ipad?

JQuery 和 Phonegap 恢复事件

scala - 在 Scala Play Framework v2.6.x 中出现 cors 错误