在winform 使用ChromiumWebBrowser 访问线上网站,出现跨域问题,线上页面有很多这种文件引用:
<link rel="dns-prefetch" href="//i.alicdn.com">
<link rel="dns-prefetch" href="//g.alicdn.com">
<link rel="dns-prefetch" href="//assets.alicdn.com">
在网上找了一些方案:
var bset = new BrowserSettings();
bset.Plugins = CefState.Enabled;
//关于跨域限制
bset.WebSecurity = CefState.Disabled;
browser1.BrowserSettings = bset;
试了下 都不行
线上网站不是我这边的 文件的引用方式是不能修改的
建议试试把引用地址开头的 //
改为 https://
<link rel="dns-prefetch" href="https://i.alicdn.com">
<link rel="dns-prefetch" href="https://g.alicdn.com">
<link rel="dns-prefetch" href="https://assets.alicdn.com">
这些是别的网站的 我这边是改不了的
@牧人羊: 如果是通过 http(s) 访问线上网站,//
不应该被解析为 file://
@dudu: 这个就不清楚了 跳转到这个页面显示空白,打开View Datasource
试了下 不行 老哥能私聊不 有偿解决这个问题
@牧人羊: 这个我不是太清楚到底什么原因,你试着通过js操作dom节点,在加载完成后添加几个link,将href地址改成以http开头的试试
例如
private void Browser_LoadingStateChanged(object sender, LoadingStateChangedEventArgs e)
{
if (e.IsLoading == false)
{
var frame = browser.GetBrowser().MainFrame;
string script="";//
frame.ExecuteJavaScriptAsync(script);
}
}
换个浏览器吧~~