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

C# WPF WebView2传参至HTML页面遇加载错误求助

本地HTML带参数访问错误原因分析

你在WPF应用中用内置浏览器加载本地HTML(基于Google Maps API展示数据),无参数时能正常访问,添加经纬度参数后出现Not allowed to load local resource和ERR_FILE_NOT_FOUND错误,核心原因有三个:

1. URI格式解析错误

直接在本地文件路径后拼接查询参数的方式不符合file://协议的URI规范。浏览器会把拼接后的参数部分当成文件路径的一部分,无法正确识别实际的HTML文件位置,从而抛出ERR_FILE_NOT_FOUND错误——比如原代码里直接拼接?lat=xxx&lng=xxx,浏览器会尝试寻找名为mapview.html?lat=xxx&lng=xxx的文件,自然找不到。

2. 本地文件的安全访问限制

WPF内置的WebBrowser控件(基于IE或EdgeWebView2)受浏览器安全策略限制,本地文件(file://协议)加载时使用查询参数会被判定为不安全的资源访问行为,触发同源策略限制,导致Not allowed to load local resource错误。浏览器默认禁止本地文件通过参数传递的方式加载,防止恶意脚本利用参数读取本地文件系统。

3. 路径拼接的语法问题

原代码中路径拼接使用"\html\mapview.html",C#字符串中的反斜杠是转义字符,虽然\h不是有效转义序列会被保留,但这种写法不规范,容易引发路径解析异常。正确的写法应该用逐字字符串@"\html\mapview.html"或者正斜杠"/html/mapview.html"来避免转义问题。

原代码问题示例

String sURL = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\html\mapview.html";
Uri uri = new Uri(sURL+"?lat="+lat+"&lng="+lng+"");
webBrowser1.Source = uri;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 23:18:30