HarmonyOS 鸿蒙Next中H5网络请求Pending

HarmonyOS 鸿蒙Next中H5网络请求Pending 鸿蒙系统6.0之前是正常的,用户升级到6.0之后,H5网络请求 Pending。使用云测机,部分机型会有这种现象。原生没有问题,就H5中的ajax请求有问题,页面的元素和图片加载正常

图片


更多关于HarmonyOS 鸿蒙Next中H5网络请求Pending的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

HarmonyOS 6.0 将默认的 Chromium 内核升级至了更高版本(如 M132),引入了更严格的网络安全与跨域处理机制。这可能导致之前版本中可正常工作的 H5 网络请求(尤其是跨域请求)因不符合新规范而被阻塞或挂起。

参考一下这个贴的处理:

https://developer.huawei.com/consumer/cn/blog/topic/03196515778414188

更多关于HarmonyOS 鸿蒙Next中H5网络请求Pending的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


先排查下:

  1. 刷新页面,打开 Network,勾选 Preserve log
  2. 看请求是 queueing(浏览器排队)还是纯 pending(服务 / 网络堵)
  3. 单独在新标签页访问单个接口地址:
    能正常返回 → 问题在前端并发 / 代码 / 跨域
    还pending → 问题在后端 / 网关 / 服务器网络
  4. 查看后端、Nginx、网关日志,找报错、超时、连接溢出

有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html

pendding 表示: 请求发出去了,但浏览器还没收到服务器响应,一直处于 “等待” 状态。

看上面的截图,可能的原因与尝试解决:

1、网络慢,而代码中存在轮询接口,如果在 pending 中接口又开始新轮询,那么就会导致接口堆积。web中并发数默认是 6.

2、6.0 以后,arkweb 使用的是 chromium 132版本内核, 部分接口有所变化,特别是网络相关的可以排除下。

3、尝试升级h5 代码三方库

这个现象我感觉优先往 ArkWeb 内核升级兼容性跨域/Cookie 方向查。

因为你的情况是:

页面正常
图片正常
静态资源正常
原生请求正常
只有 Ajax Pending

说明网络本身大概率没问题。

HarmonyOS 6.0 默认已经从 Chromium M114 升级到 M132 内核,部分 H5 项目会暴露以前隐藏的兼容问题。

建议重点排查:

  • axios/fetch 是否配置了 withCredentials
  • 服务端 CORS 配置是否完整
  • Cookie 的 SameSiteSecure 配置
  • Pending 请求是否卡在 OPTIONS 预检请求

之前就有类似案例,升级到 HarmonyOS 6.0 后,H5 跨域请求因为没有显式配置 withCredentials,导致 Cookie 不携带,最终表现为接口异常或一直 Pending。

另外既然是:

部分机型复现
部分机型正常

也建议对比下出问题设备和正常设备的:

系统版本
ArkWeb版本
浏览器版本

这个现象看起来不像原生网络问题,更像 H5 与新 Web 内核的兼容问题。先抓一个 Pending 请求看看 Request/Response Header,尤其关注 Cookie 和 CORS 信息。希望能帮到你~~~

在鸿蒙Next中,H5网络请求Pending通常因Web组件未正确配置网络策略所致。需在EntryAbility的onCreate中通过WebViewConfiguration设置setMixedContentMode(MODE_COMPATIBILITY),并确保module.json5已声明ohos.permission.INTERNET。另检查H5页面是否因跨域或证书问题阻塞,需配置网络安全config(network_security_config.xml)允许明文及自签名证书。

可能是HarmonyOS NEXT对Web组件安全策略进行了加强,导致H5的Ajax请求出现Pending。常见原因:

  1. 跨域限制更严格:检查请求是否为跨域,确保服务器返回正确的 Access-Control-Allow-Origin 等CORS头。
  2. 混合内容拦截:HTTPS页面中发起的HTTP请求会被阻止,请统一使用HTTPS,或在Web组件设置 mixedMode(MixedMode.All) 临时放行。
  3. 自定义证书/代理:确认设备无代理或VPN,或Web组件已配置允许自定义证书。
  4. 请求超时设置:部分机型可能默认超时时间过短,适当增大 timeout

如果仅Ajax异常而图片、页面元素正常,大概率是混合内容或CORS问题。可在 web.onErrorReceive 回调中捕获具体错误以定位。

回到顶部