后端设置跨域:

Access-Control-Allow-Origin: *

Access-Control-Allow-Private-Network: true

Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS

Access-Control-Allow-Headers: *

Access-Control-Max-Age: 86400

 //跨域请求成功的关键条件
 //服务器返回正确的 CORS 头:
 //Access-Control-Allow-Origin: https://your-frontend.com//允许前端请求的域名
 //Access-Control-Allow-Methods: GET, POST, OPTIONS  //允许前端请求的方法
 //Access-Control-Allow-Headers: Content-Type, Authorization //允许前端请求的头
 //Access-Control-Allow-Private-Network: true//允许前端请求私有网络访问Chrome 94及更高版本中引入,要求从非安全上下文(HTTP)访问私有网络(如localhost)时,需要明确的权限。
 
 //前端不设置非法请求头(如 Access-Control-Allow-Origin)。
 //如果携带凭证(cookie/token),需同时满足:
 //前端:xhrFields: { withCredentials: true }
 //后端:Access-Control-Allow-Credentials: true
 //后端:Access-Control-Allow-Origin 不能为 *,必须指定具体域名。 

后端设置了跨域但是还是提示跨域问题,原因是这里有两个独立的安全策略在起作用:Chrome和Edge浏览器安全策略强制修改方案

方案1:强制修改浏览器安全策略(Chrome标志)

这是最快解决您当前问题的方法:

1、打开Chrome,访问:chrome://flags,搜索以下标志并设置为"Disabled":

Block insecure private network requests - 设置为 Disabled

Insecure origins treated as secure - 添加  如:http://166.238.1.68:26666 ,访问主页的地址----IP:Port,如:http://166.238.1.68:26666这个就是主页网址

Private network access checks for navigation requests - 设置为 Disabled

2、重启Chrome

方案2:通过Edge flags修改

打开Edge实验功能页面:edge://flags/

1、搜索并修改以下关键flags:

搜索并设置为 Disabled

  • Block insecure private network requests → Disabled
  • Insecure origins treated as secure → Enabled,然后添加  如:http://166.238.1.68:26666 
  • Private network access checks for navigation requests → Disabled

其他相关flags

  • Allow invalid certificates for resources loaded from localhost → Enabled
  • Insecure downloads → Enabled
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐