经过对同源策略的了解,我们应该要消除对浏览器的误解,同源策略是浏览器做的一件好事,是用来防御来自邪门歪道的攻击,但总不能为了不让坏人进门而把全部人都拒之门外吧。没错,我们这种正人君子只要打开方式正确,就应该可以跨域。
下面将一个个演示正确打开方式,但在此之前,有些准备工作要做。为了本地演示跨域,我们需要:
1.随便跑起一份前端代码(以下前端是随便跑起来的vue),地址是http://localhost:9099。
2.随便跑起一份后端代码(以下后端是随便跑起来的node koa2),地址是http://localhost:9971。

解决同源策略

想一下,如果我们请求的时候还是用前端的域名,然后有个东西帮我们把这个请求转发到真正的后端域名上,不就避免跨域了吗?这时候,Nginx出场了。
Nginx配置

server{# 监听9099端口listen 9099;# 域名是localhostserver_name localhost;#凡是localhost:9099/api这个样子的,都转发到真正的服务端地址http://localhost:9871 location ^~ /api {proxy_pass http://localhost:9871;}
}

前端就不用干什么事情了,除了写接口,也没后端什么事情了

// 请求的时候直接用回前端这边的域名http://localhost:9099,这就不会跨域,然后Nginx监听到凡是localhost:9099/api这个样子的,都转发到真正的服务端地址http://localhost:9871

fetch('http://localhost:9099/api/getFoo', {method: 'POST',headers: {'Accept': 'application/json','Content-Type': 'application/json'},body: JSON.stringify({msg: 'hello'})
})

Nginx转发的方式似乎很方便!但这种使用也是看场景的,如果后端接口是一个公共的API,比如一些公共服务获取天气什么的,前端调用的时候总不能让运维去配置一下Nginx,如果兼容性没问题(IE 10或者以上),CROS才是更通用的做法吧。

同源策略限制下Dom查询的正确打开方式

如何真正理解用Nginx代理来解决同源策略相关推荐

  1. Nginx 代理解决前端跨域问题

    目录 一.什么是 nginx 二.nginx 的用途 三.代理 1.正向代理 2.反向代理 四.nginx.conf 配置文件的基本结构 五.nginx 的内置变量 六.nginx 解决跨域的原理 七 ...

  2. nginx代理mysql数据库 stream

    写作背景 在某云搞了个服务器,装了个数据库后一切配置OK,发现远程连接不上,排查了一天没有找到问题(安全组策略及防火墙.开放端口) .在毫无头绪之际突然想到nginx代理的80端口可以访问,本着All ...

  3. springBoot 解决前后端分离项目中跨越请求,同源策略

    今天在做项目的过程,采用前后端分离技术的时遇到采用ajax请求无法访问后台接口,按F12,查看浏览器运行状态时,报如下错误 为了解决浏览的同源策略,就必须了解什么是同源策略. 1.什么是同源策略 同源 ...

  4. nginx代理响应报文体不全解决思路

    问题说明 环境说明: centos 6.5 nginx 1.13.7 tomcat 8.5+ jdk 1.8 问题描述 本地访问测试机接口发生异常 curl访问结果: tomcat日志: 解决思路 开 ...

  5. nginx反向代理配置解决不同域名默认页面不同问题

    nginx反向代理配置解决不同域名默认页面不同问题 背景 设计思路 步骤 背景 需求:使用同一个项目(http://localhost:8080/thzhdj)映射两个域名(test1.com,tes ...

  6. vue反向代理解决跨域及部署nginx端口转发解决跨域

    1. 前言 本文是为了解决vue反向代理解决跨域及部署服务器nginx端口转发解决跨域,因为踩了不少的坑,百度了很多,也试了太多的方法,最终得以解决,所以记录一下,希望遇到同样问题的友友们可以高效的解 ...

  7. 微服务架构(5):nginx反向代理cors解决跨域

    微服务架构(5):nginx反向代理&&cors解决跨域 学习目标 1.使用域名访问本地项目 1.1.统一环境 1.2.域名解析 1.3.解决域名解析问题 1.4.nginx解决端口问 ...

  8. Nginx 使用 proxy_cookie_path 解决反向代理 cookie 丢失导致无法登录等问题

    语法 参考nginx官方文档 语法: proxy_cookie_path off;proxy_cookie_path path replacement; 默认: proxy_cookie_path o ...

  9. 解决vue项目中前后端交互的跨域问题、nginx代理配置

    最近新接了一个项目,需要自己写一个小demo和后端联调,第一次用自己写的demo和后端联调,出现了问题. 问题:Access to XMLHttpRequest at 'http://192.168. ...

最新文章

  1. git push 操作代码回退
  2. map()和zip()操作
  3. ps4修改服务器地区,ps4怎么修改服务器地址
  4. CF1090F - How to Learn You Score(构造)
  5. python 几种常用测试框架
  6. LVS 工作模式以及工作原理
  7. (转)Oracle程序包(存储过程)返回记录集
  8. 蓝桥杯2021国赛太原理工大学获得14枚奖牌
  9. 40个Android源码学习实例
  10. goldendict下优质词典简介及安装
  11. 提前体验让人回归Windows怀抱的Windows Terminal
  12. 解决Nokia PC SUITE无法识别DELL E6400 WIDCOMM bluetooth的问题
  13. 马虎词汇教程31-35(转载)
  14. python绘制笛卡尔直角坐标系
  15. Mac下GOPATH配置
  16. Unity Realistic FPS插件 Ironsights脚本简化
  17. 如何查看网站是否被百度(搜索引擎)收录
  18. 什么软件可以提取视频中的音频制作成手机铃声
  19. 微博爬虫python_微博爬虫 python
  20. 移动银行的技术、业务和商业模式

热门文章

  1. 杭电oj2072c语言,杭电acm 2072(单词数)
  2. SAP RETAIL初阶之事务代码MP83 显示一个预测参数文件
  3. 这38篇原创文章,带我入门深度学习!
  4. 3招打破机器学习工程师的边界
  5. Facebook的首席技术官:人工智能已用于内容审核,未来会做更多
  6. 在人工智能领域,人工智能机器无法如人一样理解常识知识
  7. 1亿参数4万样本BERT仍听不懂人话,我们离通用NLP能还有多远?
  8. 李飞飞确认将离职!谷歌云AI总帅换人,卡耐基·梅隆老教授接棒
  9. python中的生成器和迭代器:Generator和Iterator以及yield
  10. FrostSulliven最新发布引领全球增长的60大技术