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

谷歌Chrome浏览器中用JavaScript保存已签名XML Visual Basic后端相关问题

问题排查与解决方案

以下是你的代码执行就抛异常的常见原因和修复方案:

  • 首先确认抛异常的核心触发点是xmlSign.LoadXml(txtXML.Text)方法,你可以先加异常捕获逻辑拿到具体报错信息,快速定位问题:
If hidBrowser.Value = "GoogleChrome" Then
    Dim xmlSign As XmlDocument = New XmlDocument
    Dim xmlRet As XmlDocument = New XmlDocument 'XmlElement
    Dim xmlRoot As XmlNode

    Try
        ' 先做空内容校验,避免空值直接抛异常
        If String.IsNullOrWhiteSpace(txtXML.Text) Then
            MyAlert("提交的XML内容为空,无法加载")
            Return
        End If
        MyAlert(txtXML.Text)
        xmlSign.LoadXml(txtXML.Text)
        ' 原有后续逻辑
    Catch ex As Exception
        ' 输出具体异常信息,可直接定位根因
        MyAlert($"XML加载失败:{ex.Message}")
    End Try
End If
  • XML格式不合法:Chrome签名后的XML如果存在标签未闭合、特殊字符未转义、XML声明格式错误的问题,LoadXml方法会直接抛异常,你可以把MyAlert输出的XML内容复制到本地XML校验工具中验证格式正确性。
  • 编码不匹配:如果签名后的XML实际编码和XML头部<?xml version="1.0" encoding="xxx"?>声明的编码不一致,LoadXml方法会识别失败,你需要确认前端传递XML到后端时的编码和XML声明编码保持一致。
  • 存在非法控制字符:浏览器传递XML字符串时可能会插入零宽空格、异常换行符等XML不支持的控制字符,你可以先对txtXML.Text做一次非法字符清洗,过滤掉ASCII码小于0x20的非空白字符之后再执行加载操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:15:04