前后分离项目中的跨域方案,最常见的便是cors方案 ,mdn关于cors的描述:
场景:用户可以通过输入 www.xinzejy.cn 或者 xinzejy.cn访问网站,但之前的cors设置是这样的
Access-Control-Allow-Origin:"http://xinzejy.cn"
Access-Control-Allow-Credentials: true
所以用户通过www.xinzejy.cn访问,就出现跨域问题,因为域名不同。坑的地方在于浏览器控制台会显示当前域名为xinzejy.cn ,没有经验的话就觉得不是跨域问题了,于是添加了新的代码
Access-Control-Allow-Origin:"http://xinzejy.cn"
Access-Control-Allow-Origin:"http://www.xinzejy.cn"
Access-Control-Allow-Credentials: true
还是不行,排查后发现是因为做了第三方登录,github的回调地址还是http:xinzejy.cn/github_callback
难道要改github地址吗?如果域名还需要变更,还要改服务器代码?,于是查找nginx重定向的问题,解决方案是将www.xinzejy.cn 永久重定向到 xinzejy.cn 如下(同时恢复cors设置):
server {
listen 80;
# 301
server_name xinzejy.cn www.xinzejy.cn;
if ($host ~* www.xinzejy.cn) {
rewrite ^/(.*)$ http://xinzejy.cn/$1 permanent;
}
# vue history mode
location / {
root www;
index index.html;
try_files $uri $uri/ /index.html;
}
}
问题暂时解决。
收获总结:
- permanent:美 /ˈpɜːrmənənt/ adj. 永久的,永恒的;不变的
- temporarily:美 /ˌtempəˈrerəli/ adv. 临时地,临时
点击查看更多内容
1人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦