1.服务器的同源策略是什么?
所谓同源策略,指的是浏览器对不同源的脚本或者文本的访问方式进行的限制。比如源a的js不能读取或设置引入的源b的元素属性。
同源指两个页面具有相同的协议,主机(也常说域名),端口,三个要素缺一不可。
2.跨域是什么?
跨域是指在浏览器上进行非同源请求的行为。
3.原理解析
那么浏览器为什么会存在同源策略呢?
你想啊,在不考虑后台权限的前提下,如果没有同源策略的话,你在a.com就能随意调用b.com的接口,随意获取修改数据,那这个世界不是乱了套了。所以同源策略就是为了保证网站的数据安全而存在。
那么当你需要去跨域发起请求的时候那我们怎么办呢,在不考虑后台的情况下,现在最流行的方式就是jisonp与服务器代理。
当你在制作页面时,你可以随意嵌入其他网页的图片,所以你发现src其实是不受同源策略影响的,jisonp的原理也是如此:
使用js动态创建标签利用src发起请求,绕过同源策略。这也是为什么jisonp只支持get方式的原因。
同源策略只存在于浏览器端,服务器访问服务器是不存在跨域问题的。所以通过后台绕过服务器请求后台就可以解决跨域问题了。