前言:

公司的一个 web 端项目,项目放在一级域名的某一个目录下方

访问的时候需输入 一级域名+目录+index.html,这个 index.html 是因为服务端人员没配置默认访问 index.html 所以需要加上

领导说这个太麻烦,于是弄了个二级域名,直接指向项目目录的 index.html

接口地址:一级域名+接口

登录之后接口会设置 cookie ,每次请求都携带 cookie

OK,项目基本就这样了,现在说情况:

使用一级域名访问项目,谷歌调试,cookie 存在,项目正常
使用二级域名访问项目,谷歌调试,cookie 不存在,项目异常

  • 查看二级域名访问请求头,发现请求地址是一级域名,很明显的跨域问题造成的,后台设置的 CORS,前台 axios 设置 withCredentials 为 true,并且前台请求的时候,域名直接写死的一级域名

    由于项目不归我负责,服务端伙计也在忙别的事儿,让人帮忙测试找 BUG 有点慢,所以自己用 nodejs 临时写了一个服务端,模拟它的跨域设置 cookie 情况得知

  • Access-Control-Allow-Origin 不能直接用 *

  • Allow-Origin 的地址前台可访问地址必须一模一样,域名(IP)+端口号

OK,正常来讲这两个设置好之后,应该能设置上 cookie,但是还是设置不上去,报的是 sameSite 为 none 这个警告,查了一下发现这个是 谷歌浏览器 更新到 80 版本之后加上的,测试:

  • 找一个 50+ 的版本试了一下,能设置上去,但是得用户给浏览器降级, PASS 掉
  • Chrome 中打开 chrome://flags/#same-site-by-default-cookies 和 chrome://flags/#cookies-without-same-site-must-be-secure,并设置为 Enabled,重启浏览器,可以,但是得用户改浏览器设置,PASS掉
  • 前台 VUE 项目开启 https ,成功,这个可以实施,但是 http 的不行有点不完美

梳理项目需求:

一级域名可以访问,二级域名也可以访问,接口地址在一级域名,所以那个前端小伙子将接口地址写死了,为的是用二级域名访问的时候,正常访问一级域名的东西

OK 有思路了,能不跨域的问题,干嘛还跨域啊

  • 前端将写死的域名干掉,默认当前域名就行

  • 二级域名下的 nginx 配置一个 proxy_pass ,接口统一加上一个前缀, ex: manage/接口 ,manage 是识别当前请求的,使用 proxy_pass 代理到一级域名
    注意:这个 proxy_pass=https://一级域名/ 最后的 / 斜杠 不能丢掉,因为接口直接在一级域名下边,不带 manage 这个前缀,proxy_pass 后面的域名加上 / 就代表着将匹配到的前缀干掉了,只要后面的接口

    location ^~ /manage {proxy_pass   http://****.cn/;
    }
    
  • 重新打包部署一下项目,用二级域名访问,也不跨域了,cookie问题解决了,http和https都没问题

新问题:
一级域名下边项目去登录,请求接口报 404

梳理一下:

接口是直接在一级域名下方,没有二级域名访问的时候所谓的前缀,而现在项目在一级域名下的前台访问接口的时候实际上是加上了 manage 前缀的,而一级域名下根本没有什么 一级域名/manage/接口地址 等等接口的

这样就简单了,一级域名同二级域名一样,做 rewrite ,或者做个 proxy_pass 就行了,将接口的前缀过就过滤掉了

配置好之后重启 nginx 就好了,现在该项目不存在跨域的问题了,也不用设置什么 CORS 了

记录一次解决后端接口设置cookie设置不上去经过,一级域名可以设置上去cookie,二级域名设置不上cookie相关推荐

  1. php 什么cms能让会员自已建个独立站并绑上二级域名?,CMS_帝国CMS使用二级域名并解决顶一下的方法,1、将2级域名解析指向到所在 - phpStudy...

    帝国CMS使用二级域名并解决顶一下的方法 1.将2级域名解析指向到所在的空间,(可以用泛解析,如*.phpstudy.net A IP ,也就是A记录) 2.需要空间支持绑定到栏目所在的文件夹(如果是 ...

  2. QDUOJ二次开发记录(前端、后端)

    QDUOJ二次开发记录(前端.后端) 一.开始前 QDUOJ是青岛大学开源的Online Judge系统,目前在Github上有3.8K个Star(截止至20.4.24),具有界面美观.部署简单(采用 ...

  3. 关于二级域名Cookie的问题及解决方法

    今天博客园全面采用二级域名后,发现即使用户已经登录,但在访问二级域名Blog页面时都显示没有登录(表现为发表评论时要求输入验证码, 收藏功能无法正常使用),再次登录后,进入其他二级域名还是需要登录.在 ...

  4. NGINX免费配置二级域名及同时开启HTTPS(HTTP强制转HTTPS)nodejs的express后端项目,前端next.js的SSR项目

    最近在做web3的创业项目,需要给第三方提供API接口需要配置二级域名:整个过程遇到了一系列问题都一一解决了,记录下整个过程: 二级域名是可以不开启HTTPS的,直接用HTTP也行,开启HTTPS后配 ...

  5. 不同域名cookie共享_cookie在二级域名间共享完成sso

    单点登录(SingleSignOn,SSO)就是用户完成一次应用系统登录,便可以免登访问多个其它应用系统,这里所说的应用系统是相互信任的. 通常SSO都是企业内部多个应用之间,一个企业一般有一个顶级域 ...

  6. Shiro解决多个二级域名的单点登录问题

    在项目中,可能会遇到多个系统同时开发一个项目,这时候项目上线会遇到一个问题,大家都是二级域名,但是shiro的cookie也在二级域名下,其他系统无法获取,导致无法登录并且无法调用其他系统的接口及数据 ...

  7. 顶级域名和二级域名共享cookie及相互删除cookie

    在CSDN看到一个cookie设置domain时,如何删除的问题, 自己也只知道domain设置为顶级域名时可以被其他二级域名共享,但是如何删除还是有一点搞不清楚,所以特意测试了下cookie和dom ...

  8. 记录一次微信公众号开发遇到的问题,提示二级域名未备案

    这个问题其实去年就遇到了,只是今年再次开发时想了半天才想起来这些问题,索性写下来记录一下,要是赶巧能帮到一两位程序猿同仁,就再好不过了. 前提: 公司主域名是在西部数码备案的,而且是用了很多年的,不存 ...

  9. (凯思奥2020-03月)问题记录3,GUI问题记录3 4,国际化异常,微信平台接入 = 数据库修改 + 自动化填充 + 前后端接口修正 + 联调测试问题 + 微信与数字账号绑定 + 思考+部署

    问题记录3: 1. UserPage: 未登录状态(报解构异常),或直接登出再登录,没有获取用户数据. 2.WorkContentPage gui相关(大片红字报错)(国际化message类型问题) ...

  10. Nginx解决前端调用后端接口跨域问题

    Nginx解决前端调用后端接口跨域问题 参考文章: (1)Nginx解决前端调用后端接口跨域问题 (2)https://www.cnblogs.com/wangymd/p/11200746.html ...

最新文章

  1. 详解Linux运维工程师打怪升级篇
  2. vim中开shell
  3. 每天在竞争中淘汰自己
  4. Log4Net配置使用简记
  5. 六角填数---第五届蓝桥杯
  6. Java游戏有易筋经_易筋经- JavaWeb-1
  7. phpexcel常见问题的解决办法
  8. 进入 App Store 打分
  9. hdu 5055 Bob and math problem
  10. AES加密算法介绍与实现
  11. 【转】android:windowSoftInputMode属性详解
  12. C++ unordered_map初始化
  13. Java旅游网站源码+页面
  14. 计算机时间与网络时间无法同步,电脑时间与网络时间不同步解决办法
  15. DER: Dynamically Expandable Representation for Class Incremental Learning翻译
  16. Redis伪集群搭建
  17. 关于jd-gui启动报This program requires Java 1.8+的错误
  18. php 抓取弹幕,php实现斗鱼弹幕,一起来欣赏弹幕吧~
  19. 【缺陷管理】9:偶尔出现的缺陷如何处理?
  20. i510400和i512400差距

热门文章

  1. 第三阶段应用层——1.12 数码相册—interval_page设置时间间隔界面的显存管理、页面规划、输入控制
  2. 2021年G2电站锅炉司炉最新解析及G2电站锅炉司炉作业考试题库
  3. 台达服务器电源原理电路图,台达DPS-250GB-4B ATX电源原理分析与检修
  4. recovery 工作流程
  5. 生物信息学习——bowtie实例解析
  6. USB接口WiFi驱动浅析
  7. 根据制备方法划分不同的壳聚糖水凝胶
  8. 交换机与路由器与猫的区别与联系
  9. RxJava详细解析
  10. 昨天见到了原来飘渺水云间(浙江大学BBS站)的FLASH版主小兵甲