React Native Webview升级webkit至1.6.0-alpha02后仍无法移除x-requested-with头
Android端React Native WebView自动添加x-requested-with请求头问题排查方案
以下是针对你遇到问题的具体排查步骤:
确认Webkit依赖版本是否真正生效
直接修改node_modules里的build.gradle是临时操作,下次依赖更新就会被覆盖,还可能因依赖冲突导致指定版本未被加载。- 在项目根目录执行
./gradlew app:dependencies命令,搜索androidx.webkit:webkit,查看实际生效的版本是否为1.6.0-alpha02。 - 若版本不符,在你项目的
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控制。 - 检查前端代码是否有手动添加该请求头的逻辑,排除自身代码导致的问题。
- 区分页面内的
清理缓存并重新构建
- 执行
./gradlew clean清理gradle构建缓存。 - 卸载设备上的现有应用,避免旧安装包残留。
- 重启Android Studio并清理IDE缓存(
File -> Invalidate Caches / Restart),然后重新构建安装应用。
- 执行
内容的提问来源于stack exchange,提问作者narek
相关产品推荐
相关产品推荐

