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

React Native Webview升级webkit至1.6.0-alpha02后仍无法移除x-requested-with头

Android端React Native WebView自动添加x-requested-with请求头问题排查方案

以下是针对你遇到问题的具体排查步骤:

  • 确认Webkit依赖版本是否真正生效
    直接修改node_modules里的build.gradle是临时操作,下次依赖更新就会被覆盖,还可能因依赖冲突导致指定版本未被加载。

    1. 在项目根目录执行./gradlew app:dependencies命令,搜索androidx.webkit:webkit,查看实际生效的版本是否为1.6.0-alpha02。
    2. 若版本不符,在你项目的android/app/build.gradle中添加强制版本配置,确保gradle优先使用指定版本:
      configurations.all {
          resolutionStrategy.force "androidx.webkit:webkit:1.6.0-alpha02"
      }
      
  • 检查WebView设置是否开启禁用自动头的开关
    1.6.0-alpha02版本新增了控制请求头的API,但React Native WebView默认不会自动配置这个选项,需要手动开启:
    你需要在Android原生层修改WebView的Settings,找到ReactNativeWebViewManager类中配置WebSettings的代码块,添加以下逻辑:

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
        webSettings.setRequestHeaderMode(WebSettings.REQUEST_HEADER_MODE_NO_OVERRIDE);
    }
    

    如果你不想修改原生代码,也可以通过自定义NativeModule或者WebView的ref调用原生方法完成配置。

  • 验证请求类型与来源
    确认是否所有请求都被添加了x-requested-with头:

    • 区分页面内的fetch请求和XMLHttpRequest请求,部分旧版XHR逻辑可能不受WebSettings控制。
    • 检查前端代码是否有手动添加该请求头的逻辑,排除自身代码导致的问题。
  • 清理缓存并重新构建

    1. 执行./gradlew clean清理gradle构建缓存。
    2. 卸载设备上的现有应用,避免旧安装包残留。
    3. 重启Android Studio并清理IDE缓存(File -> Invalidate Caches / Restart),然后重新构建安装应用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 21:55:42