谷歌浏览器 跨域遇到的坑 cors 错误(亲测可行)

24 篇文章 1 订阅
3 篇文章 0 订阅

浏览器版本:

一.现象:

 

解决方案:

方案一:(已论证)

 步骤1: 谷歌浏览器 打开 chrome://flags/#block-insecure-private-network-requests
步骤2 : 找到 Block insecure private network requests. 设置为Disabled
步骤3 : 关闭谷歌浏览器重新打开网页 解决问题。


方案二:(未论证)
或者 访问使用https 的代替http 的

==================经过==================

1. get 方式请求json,前端调用返回cors error

2.jsonp 方式 :http:xxx.com?callback=callback 还是报错cors 

3.最后在同事帮助下,发现谷歌的大bug,参考上面方式或更换火狐或其他浏览器都可以

4. 最后的最后,一切都是尴尬,因为本地绑定了host IP:www.***.com ,相当于拿着ip去访问nginx 服务器,怎么会不产生跨域呢?无论怎么设置都无效的,去掉 这条 host 就好 

补充:

首先,客户端通过域名请求服务,如果你在本地的hosts文件中配置了该域名与ip的映射关系,那么,请求就会直接发送到hosts文件中对应的ip,不会通过dns解析(如果本地hosts文件中没有配置,就会通过dns解析域名)。


这时,请求到达了服务端,服务端的nginx拦截了该请求,然后在本地通过域名匹配server_name,然后,根据proxy_pass返回相应的服务给客户端。

本地host文件和nginx映射的关系

假设客户端A--------》浏览器url请求域名--------》域名被host解析对应的IP--------》到对应IP的服务器--------》先被nginx反向代理拦截--------》找到nginx上一样域名(nginx.conf配置文件中server里的server_name)--------》对应的反向映射地址(nginx.conf配置文件中同左server里的proxy_pass 就是对应的Tomcat里WEB的发布路径如 http:localhost:8080)--------》对应8080端口的项目

参考;chrome94+版本出现的跨域问题及解决方案

  • 9
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lxw1844912514

你的打赏就是对我最大的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值