You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cordova 10配置allowList仍出现CORS问题,已设置<access origin="*"/>如何解决?

Cordova Android 10 CORS报错解决方案

核心原因

Cordova Android 10 除了将白名单能力内置到核心外,还默认收紧了WebView的安全限制,仅配置<access origin="*" />无法覆盖所有场景的权限放行。

修复步骤

1. 新增config.xml配置

在你的config.xml中添加以下配置:

<!-- 开启不安全文件模式,禁用WebView本地文件源限制,解决本地页面发请求的CORS问题 -->
<preference name="AndroidInsecureFileModeEnabled" value="true" />
<!-- 放行所有导航跳转权限 -->
<allow-navigation href="*" />
<!-- 放行所有系统意图调用权限 -->
<allow-intent href="*" />

如果你的应用需要访问HTTP明文接口,还需要在<platform name="android">块中添加明文流量权限,同时需要确保根<widget>标签已经添加xmlns:android="http://schemas.android.com/apk/res/android"属性:

<edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/application">
    <application android:usesCleartextTraffic="true" />
</edit-config>

2. 自定义WebView安全配置(可选,适用于配置不生效场景)

在Cordova主Activity的onCreate生命周期中添加WebView权限配置:

WebView webView = (WebView) appView.getView();
WebSettings webSettings = webView.getSettings();
// 允许从文件URL加载的内容访问其他文件URL
webSettings.setAllowFileAccessFromFileURLs(true);
// 允许从文件URL加载的内容访问所有源
webSettings.setAllowUniversalAccessFromFileURLs(true);

3. 规避WebView CORS限制方案

如果服务端无法配置CORS响应头,可使用原生请求插件规避WebView的CORS校验:

  • 安装cordova-plugin-advanced-http插件,所有跨域请求走原生层发送,不会触发WebView的CORS拦截规则。

验证步骤

完成配置后执行以下操作重新构建项目:

  • 执行cordova platform rm android && cordova platform add android重新添加安卓平台
  • 执行cordova clean清理旧构建缓存
  • 重新打包测试即可

内容的提问来源于stack exchange,提问作者Mahdi Soltani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 02:39:03