我正在开发一个用于Android的cordova应用程序,切换到cordova 10后,出现了与CORS问题相关的错误,我删除了cordova-plugin-whitelist插件,因为它已经被弃用:
随着允许列表功能现在集成到 Cordova Android 的核心中(10.x 及更高版本),此插件不再需要。
我的 config.xml 文件包含以下行:
<access origin="*" />
在切换至cordova 10之前一切正常,这几天我在搜索但没有结果,谢谢。
我正在开发一个用于Android的cordova应用程序,切换到cordova 10后,出现了与CORS问题相关的错误,我删除了cordova-plugin-whitelist插件,因为它已经被弃用:
随着允许列表功能现在集成到 Cordova Android 的核心中(10.x 及更高版本),此插件不再需要。
我的 config.xml 文件包含以下行:
<access origin="*" />
cordova-android 10.x 现在使用 https:// 协议(WebAssetLoader)提供文件服务,而不是之前的 file:/// 协议。这意味着您需要更改服务器上的 CORS 设置,以允许您的移动应用程序所在的主机名。默认情况下为 https://localhost,但您可以使用 <preference name="hostname" value="localhost" />
设置来更改主机名(协议不可配置)。
如果您不在 Cordova 中更改主机名,则需要在服务器配置中添加 https://localhost 作为允许来源,使用 Access-Control-Allow-Origin 标头。
我刚把我的项目从Cordova 9迁移到了Cordova 10.1.1,现在的目标是Android 12 (API 31),同时使用Firebase进行OAuth (根据文档)。
构建过程很顺利,但是尝试通过OAuth进行登录时出现了err_connection_refused
错误。唯一需要解决这个问题的方法就是添加偏好设置name="AndroidInsecureFileModeEnabled" value="true"
到config.xml
里。
<preference name="AndroidInsecureFileModeEnabled" value="true" />
添加到<platform name="android">
元素中,可以恢复从file://
协议提供服务的旧行为,从而解决CORS错误。 - jamsandwich
https://
的链接吗? - treborhttps://localhost
上运行(除非更改),因此您的后端服务器需要允许https://localhost
(或使用主机名首选项更改为其他内容)。 - František Augusztin