同源与跨域

405 阅读1分钟

1. 什么是同源

所谓“同源”指的是“三个相同”。

协议相同

域名相同

端口相同

举例

举例来说

www.example.com/dir/page.ht… 这个网址,协议是http://,域名是www.example.com,端口是80(默认端口可以省略),它的同源情况如下。

www.example.com/dir2/other.… 同源

example.com/dir/other.h… 不同源(域名不同)

v2.www.example.com/dir/other.h… 不同源(域名不同)

www.example.com:81/dir/other.h… 不同源(端口不同)

www.example.com/dir/page.ht… 不同源(协议不同)

2. 什么是跨域

跨域是指跨域名的访问,以下情况都属于跨域:

跨域原因说明 示例

域名不同 www.jd.comwww.taobao.com

域名相同,端口不同 www.jd.com:8080www.jd.com:8081

二级域名不同 item.jd.commiaosha.jd.com

如果域名和端口都相同,但是请求路径不同,不属于跨域,如:

www.jd.com/item

www.jd.com/goods

跨域问题是浏览器对于ajax请求的一种安全限制:一个页面发起的ajax请求,只能是于当前页同域名的路径,这能有效的阻止跨站攻击。

因此:跨域问题 是针对ajax的一种限制。