【转】谷歌浏览器 跨域遇到的坑 cors 错误(亲测可行)本地host文件和nginx映射的关系

浏览器版本:

谷歌浏览器 跨域遇到的坑 cors 错误(亲测可行)本地host文件和nginx映射的关系_客户端

一.现象:

谷歌浏览器 跨域遇到的坑 cors 错误(亲测可行)本地host文件和nginx映射的关系_客户端_02
谷歌浏览器 跨域遇到的坑 cors 错误(亲测可行)本地host文件和nginx映射的关系_nginx_03

 

解决方案:

方案一:(已论证)

谷歌浏览器 跨域遇到的坑 cors 错误(亲测可行)本地host文件和nginx映射的关系_node.js_04

 步骤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端口的项目

原文地址:谷歌浏览器 跨域遇到的坑 cors 错误(亲测可行)本地host文件和nginx映射的关系【图文】_码农编程进阶笔记_51CTO博客

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇