同源策略和跨域访问说的是一个事情。
同源策略是客户端浏览器规则,同源是指协议、域名、端口三者一致,不同源的资源之间不能互相访问,这样大大的限制了恶意攻击的发生。如一个恶意网站通过iframe嵌入支付宝页面,通过js获取登录信息,这在没有同源策略的限制下是很容易实现的。同源策略多是限制js读取非同源的dom数据,如果是直接引用非同源的静态资源是可以的。因为这些是公开的,但是你不能修改别人的运行规则。
跨域访问是客户端发起,由服务端决定是否返回资源或数据(其实服务器是返回了数据的),如果服务端禁止跨域访问,会在http头部设置ACCESS-CONTROL-ALLOW-ORIGIN,这样浏览器就知道是否允许读取这个请求返回的数据了,达到同源访问的控制。
CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。