前端解决跨域问题

写在前边

前后端分离编码总是会遇到跨域问题,那么究竟应该如何解决呢?我们一起来探索一下吧。


什么是跨域?

广义的跨域

 - 资源跳转:a链接、重定向、表单提交等
 - 资源嵌入: 一些dom标签等
 - 脚本请求:js发起的ajax请求 dom和js对象的跨域操作等

然而我们平常所说的跨域是狭义上的,是由浏览器同源策略限制的一类请求场景

同源策略

1995年,同源政策有Netscape公司引入浏览器。目前所有浏览器都实行这个政策

所谓同源就是指:

  • 协议相同
  • 域名相同
  • 端口相同

举例来说:http://www.example.com/dir/page.html个网址中,协议是http://,域名是www.example.com,端口号是80*(默认)

http://www.example.com/dir2/other.html:同源
http://example.com/dir/other.html:不同源(域名不同)
http://v2.www.example.com/dir/other.html:不同源(域名不同)
http://www.example.com:81/dir/other.html:不同源(端口不同)

同源策略的目的,是为了保护用户信息的安全,防止恶意的网络切取数据。目前来说,如果非同源,有以下三种行为受到限制:

  1. cookie、ocalstorage、indexDB无法读取。
  2. DOM无法获得
  3. Ajax请求不能发送。

跨域解决方案

1.通过jsonp跨域
这种方法的基本思想就是,网页通过添加一个

你可能感兴趣的:(前端解决跨域问题)