跨域-------------同源策略

在前端开发中,经常遇到"跨域"的问题,以下的文章将 探讨一下为什么会有"跨域"问题的出现,和所谓的"同源策略"


同源策略

1995 年由 Netscape 公司提出,之后被其他浏览器厂商采纳。同源策略只是一个规范,并没有指定其具体的使用范围和实现方式,各个浏览器厂商都针对同源策略做了自己的实现。一些 web 技术都默认采取了同源策略,这些技术范围包括但不限于SilverlightAdobe FlashAdobe AcrobatDomXMLHttpRequest

为了保证使用者信息的安全,防止恶意网站篡改用户数据--------假设没有同源策略,那么我在A网站下的cookie就可以被任何一个网站拿到;那么这个网站的所有者,就可以使用我的cookie(也就是我的身份)在A网站下进行操作-------同源策略可以算是 web 前端安全的基石,如果缺少同源策略,浏览器也就没有了安全性可言。

非同源的网站之间

  • 无法共享 cookie, localStorage, indexDB
  • 无法操作彼此的 dom 元素
  • 无法发送 ajax 请求
  • 无法通过 flash 发送 http 请求
  • 其他

跨域

同源策略做了很严格的限制,但是在实际中,又确实地方需要突破同源策略的限制,也就是我们常说的跨域


同源策略最早被提出的时候,为的就是防止不同域名的网页之间共享 cookie,但是如果两个网页的一级域名是相同的,可以通过设置 document.domain来共享 cookie。

study.cn/json/jsonp/jsonp.html
 请求地址  形式  结果
 http://study.cn/test/a.html 同一域名,不同文件夹  成功
 http://study.cn/json/jsonp/jsonp.html 同一域名,统一文件夹  成功
 http://a.study.cn/json/jsonp/jsonp.html 不同域名,文件路径相同  失败
 http://study.cn:8080/json/jsonp/jsonp.html  同一域名,不同端口  失败
 https://study.cn/json/jsonp/jsonp.html  同一域名,不同协议  失败

 

 

 

 

 

 


jsonp的产生:

1.AJAX直接请求普通文件存在跨域无权限访问的问题,不管是静态页面也好.

2.不过我们在调用js文件的时候又不受跨域影响,比如引入jquery框架的,或者是调用相片的时候

3.凡是拥有scr这个属性的标签都可以跨域例如

你可能感兴趣的:(js,前端框架-vue)