CefSharp v91版本中OutOfBlinkCors标识失效,CORS预请求报错如何解决
CEFSharp v91版本CORS预检请求报错解决方案
CEF v91版本已正式移除OutOfBlinkCors特性开关,原v86版本的修复方案失效,针对该问题的可行解决方案如下:
全局关闭CORS安全校验(仅推荐内部应用使用)
启动CEFSharp时添加启动参数:--disable-web-security --user-data-dir=自定义本地缓存目录路径 --disable-features=BlockInsecurePrivateNetworkRequests注意高版本Chromium内核必须搭配
--user-data-dir参数,才能让禁用web安全的配置生效,该方案会全局关闭所有网页的跨域校验,不建议对外发布的公网客户端使用。自定义CORS预检请求处理逻辑
实现IResourceRequestHandler接口,重写OnBeforeCorsPreflight方法,对符合业务规则的预检请求直接返回Continue跳过默认校验;也可以在响应返回阶段修改响应头,主动添加Access-Control-Allow-Origin、Access-Control-Allow-Methods等CORS放行头,精准控制跨域放行范围,兼顾安全性和业务需求。使用自定义Scheme免除跨域校验
如果跨域请求是本地资源与远端服务的交互,可将本地资源的加载协议从http/https替换为自定义Scheme(如app://、local://),注册Scheme时将CORSEnabled属性设置为false,即可直接免除该协议下所有资源的CORS校验,该方案不受Chromium版本迭代影响,兼容性最好。
注意:对外发布的生产环境客户端禁止直接全局禁用web安全,会导致恶意页面可以跨域发起请求、窃取本地数据,存在严重安全隐患。
内容的提问来源于stack exchange,提问作者IMKalpeshJ
相关产品推荐
相关产品推荐

