网站的 “ 源 ”,是由(protocol,host,port)三元组定义的,两个网站(URL)同源是指它们的协议、主机、端口号都相同。
比如现在有两个网站 alimama.com 和 aliniangniang.com 如果我的 aliniangniang.com 是嵌在?alimama.com 页面,它们的前端页面还可以对对方的服务端发送请求,这并不是我们希望看见的。
所以同源策略并不是用于保护网络服务器安全的。是为了防止他们读取用户在当前网站上的数据,或以用户的身份向当前网站发起操作。
此处有一个疑问:很多网站将图像文件、JavaScript代码等静态文件放在与主站域名不同的 CDN 域名上,为什么这些资源跨域还能正常显示或执行?
解答:
这项技术解决的是我们前端不同源网站的互相访问。
我们只需要使用JS把 document.domian 改为 example.com,他们就能互相访问对方的DOM内容。
注意:
即前端页面要从跨域的服务端获取数据。
如果不涉及跨域前后端通常以JSON获取数据,跨域时需要加padding,将json转为 JS 代码。目前使用?HTML5有自动支持数据传输。