平时大家提到的跨域问题存在的原因是:浏览器的同源策略限制。
什么是同源策略呢?
同源策略是浏览器的安全策略。是一种约定,是浏览器最核心最基本的安全功能。
如果没有同源策略,浏览器很容易收到XSS,CSRF攻击。
什么是同源呢?
同源指“协议+域名(主机)+端口”三者相同。任一不同,都属于非同源。即使不同域名对应同一IP地址也非同源。
如: localhost 和 127.0.0.1属于非同源。
同源策略作用是什么?
同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。
这是一个用于隔离潜在恶意文件的重要安全机制。
对于前端开发来说,最主要的限制是:
1) 当非同源时,限制ajax(XHR)请求。
如果非同源,浏览器会自动拦截请求,不再向服务器发起请求。
2)ajax请求的时候,请求头不能携带cookie。
但是通过document.cookie可以获取到cookie的值。(同主机的情况下)
如果使用form表单请求,则不存在上面的问题。因为form表单提交不存在跨域问题。
同源策略是浏览器的安全策略,不是HTTP协议的一部分。