94版本之后的谷歌和Edge浏览器 出现CORS跨域错误解决办法

在高版本的Chrome和Edge下,浏览器默认是开启Block insecure private network requests.这个选项的。也就是默认禁止跨域请求,所以在访问一些没有符合最新标准的老网站时,可能会发现出现如图所示的CORS跨域请求错误,从而导致不能正确打开该网站。

解决办法:

1、谷歌浏览器输入,修改下图属性。

 1 chrome://flags/ 

 

 

2、Edge浏览器输入,修改下图属性。

 1 edge://flags/ 

 

 3、操作注册表解决,可以直接在注册表添加对应的项和键值对。 也可以在代码里添加(附上C#代码 )

 

 

附上C#代码 :

 1 /// <summary>
 2         /// 初始化注册表信息
 3         /// </summary>
 4         /// <exception cref="NotImplementedException"></exception>
 5         private static void InitRegisteredInfo()
 6         {
 7             //谷歌
 8             InitSiteConfiguration(@"SOFTWARE\Policies\Google\Chrome");
 9             //Edge
10             InitSiteConfiguration(@"SOFTWARE\Policies\Microsoft\Edge");
11 
14         }
15 
16         /// <summary>
17         /// 解决CORS跨域错误问题
18         /// 指定是否允许不安全网站向更专用网络上的端点发送请求  1是  0否
19         /// </summary>
20         /// <exception cref="NotImplementedException"></exception>
21         private static void InitSiteConfiguration(string settingPath)
22         {
23             RegistryKey regkey = Registry.LocalMachine.OpenSubKey(settingPath, true);
24             if (regkey == null)
25                 regkey = Registry.LocalMachine.CreateSubKey(settingPath);
26             var valueNames = regkey.GetValueNames();
27             if (valueNames.Length == 0)
28             {
29                 regkey.SetValue("InsecurePrivateNetworkRequestsAllowed", 1, RegistryValueKind.DWord);
30                 regkey.Close();
31                 return;
32             }
33             foreach (var name in valueNames)
34             {
35                 if (name == "InsecurePrivateNetworkRequestsAllowed" && regkey.GetValue(name).ToString() == "1")
36                 {
37                     return;
38                 }
39             }
40             regkey.SetValue("InsecurePrivateNetworkRequestsAllowed", 1, RegistryValueKind.DWord);
41             regkey.Close();
42         }

 

posted @ 2022-07-27 10:59  进击的黑大帅  阅读(4382)  评论(0编辑  收藏  举报