1、同源策略

同源策略是一种约定和规范好的安全策略,是浏览器最核心最基本的安全保障同源政策的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据。

满足的条件:

(1)协议要相同:HTTP、HTTPS;

(2)域名或者IP要相同;

(3)端口号要相同;

如果,其中一个条件没有满足,那么就是跨域了;

比如:

前端: http://192.168.2.37 默认端口80

后端: http://192.168.2.37:7001

 (a受同源限制的情况:动态数据(来自于后端的数据)

(1)AJAX;

(2)COOKIE;

(3)localStorage;

(4)sessionStorage;

(5)indexDB:本地数据库;

b)不受同源限制的情况:静态资源(前端用到的资源)

(1)img  的  src 属性;  (audio、 video)

(2)link   的 href 属性;

(3)script  的 src 属性;

(4)自定义字体库;

2、跨域的三种处理方式

三种处理跨域的方式,是各自独立的,比如JSONP就是一种独立的跨域处理方式,不需要服务器端配置CORS来支持,当然在一个项目里面两者可以混合起来使用:获取数据就用JSONP,提交数据就用CORS;

1JSONPJSON with Padding

  1. 原理:JSONP是利用 <script> 标签跨域特性进行数据跨域访问的,Script标签不受同源的限制;
  2. 特征:
    1. 非常的轻便;
    2. 是浏览器默认支持的,兼容性非常好;
    3. 只支持GET请求,不支持POST等其他请求;
    4. 只能获取数据,不能提交数据,所以比较轻便高效;
    5. 还是需要服务器端支持:支持JSONP;

2CORSCrossOriginResourceSharing  跨域资源共享

特点:

  1. 在服务器端进行相关的配置;
  2. 所有的服务器端编程语言都可以轻松的支持这种配置;
  3. 功能比较强大,支持GET和POST;
  4. 如果需要跨域携带凭证:
    1. 服务器端需要明确的设置支持跨域携带凭证;
    2. 设置允许的客户端的时候,不能使用*,要具体的域名,不要使用localhost或者127.0.0.1;
    3. 客户端也需要进行允许跨域携带凭证的配置:withCredentials

3Proxy代理--需要准备一个代理服务器

特点:

  1. 安全策略是客户端(浏览器)的基本策略
  2. 跟服务器端没有关系,服务器端不受同源的限制;
  3. 我的客户端就请求自己的服务器(代理服务器),然后我们自己的服务器(代理服务器)向目标服务器发起请求,当代理服务器获取到数据之后,再把数据响应给客户端;
  4. 记住:代理的实现跟代码没有关系,是代理服务器(Egg\apache\nginx\tomcat)的事情,跟业务代码没有任何关系;
  5. 无感的:对跨域不再有感觉;

什么是同源策略?解决跨域的三种方法?相关推荐

  1. 什么是同源策略及解决跨域的三种方式

    同源策略 1.1.1 所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个 ip 地址,也非同源.同源策略/SOP(Same origin policy)是一种约 ...

  2. vue开发环境和生产环境里面解决跨域的几种方法

    vue开发环境和生产环境里面解决跨域的几种方法 参考文章: (1)vue开发环境和生产环境里面解决跨域的几种方法 (2)https://www.cnblogs.com/pass245939319/p/ ...

  3. 前端交互之“解决前端跨域的三种方法”

    1.什么是前端跨域? 跨域是浏览器为了安全而做出的限制策略:浏览器请求必须遵从同源测试: http://www.bilibili.com:8080:/anime/?key=calue路径 键值对 同协 ...

  4. 前端解决跨域的九种方法

    什么是跨域? 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的. 广义的跨域: 1.资源跳转:A链接.重定向.表单提交 2.资源嵌入: <link>.<scr ...

  5. vue cli3解决跨域的两种方法

    请去下面网站非常清晰:https://www.jianshu.com/p/eb3de95cfc82

  6. 解决前端跨域的几种方法

    解决前端跨域的几种方法 了解跨域出现的原因 解决跨域的几种方法 想要解决跨域 先要知道为什么会出现跨域 跨域:指的是浏览器不能执行其他网站的脚本 它是由浏览器的同源策略造成的 是浏览器对javascr ...

  7. 前端实现跨域的三种方式

    前端解决跨域的三种方式: 1.cors跨域(只需要后端配置) header("Access-Control-Allow-Origin:*"); // 允许任何来源 header(& ...

  8. 浏览器同源策略及跨域的解决方法

    浏览器同源策略及跨域的解决方法 参考文章: (1)浏览器同源策略及跨域的解决方法 (2)https://www.cnblogs.com/laixiangran/p/9064769.html 备忘一下.

  9. Django - - 进阶 - - 同源策略和跨域解决方案

    目录 同源策略 一个源的定义 同源策略是什么 举个例子 jQuery中getJSON方法 JSONP应用 1, 同源策略 1.1 一个源的定义 如果两个页面的协议,端口(如果有指定)和域名都相同,则两 ...

最新文章

  1. OpenCV(十五)边缘检测1 -- Sobel算子(一阶微分算子,X、Y方向边缘检测)
  2. Linux 操作系统原理 — 内存 — 基于局部性原理实现的内/外存交换技术
  3. You are what you say!
  4. pip更换源 windows10_Conda及Pip换源处理
  5. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]38.隐蔽信道和侧信道的区别
  6. 数据科学 IPython 笔记本 7.15 高性能 Pandas
  7. 说说Asp.net 身份验证、授权
  8. android组件化数据生命周期,Android组件化开发实践(七):开发常见问题及解决方案...
  9. 安装mysql 错误重新安装
  10. PDFLib9以上版本的去水印办法
  11. 如何在Debian8.6 jessie上使用小度Wifi
  12. 容器监控工具cAdvisor
  13. 前端需要学习c语言吗,我应该在学习C语言之前学习HTML或CSS吗?
  14. 用 Web 技术为 Safari 编写扩展
  15. 数字图像处理 检测护照图像中的机器可读区域
  16. Frps一键安装脚本,带Frpc Windows便捷启动脚本
  17. CUDA入门和网络加速学习(二)
  18. 苹果电脑破音的解决办法
  19. 敬老院无线看护系统解决方案,让老人安心,家属放心
  20. 王卫不再担任顺丰速运法人 变更为陈雪颖

热门文章

  1. 乐视实行四天半工作制,贾跃亭羡慕的表示下周回国
  2. SSH命令行使用方法
  3. 跳入餐饮新消费水池,腾讯、字节、B站能否“如鱼得水”?
  4. ABB机器人基本知识。
  5. 2018年英语专升本英语阅读「Part II 阅读专区」【文章(图片)、答案、词汇记忆】
  6. 【统计技术】数据挖掘在反欺诈中的应用
  7. 谈谈制造企业如何制定敏捷的数字化转型策略
  8. JS小练习:使用JavaScript实现点击‘上一张’,‘下一张’循环播放图片
  9. 谷歌浏览器和火狐浏览器永久禁用缓存【一劳永逸的解决方式】
  10. No 和 Not 的区别