目录
- 1. 跨域原理
- 1. 定义
- 2. 同源策略(SOP,Same-Origin-Policy)
- 3. 同源策略限制内容
- 3. 允许跨域加载资源的标签
- 2. 常见跨域场景
- 3. 跨域解决方案
- 1. JSONP(JSON with Padding(填充))
- 2. 跨域资源共享(CORS,Cross-Origin Resource Sharing)
- 3. PostMessage
- 4. WebSocket
- 5. Node中间件代理(两次跨域)
- 6. Nginx反向代理
- 7. window.name + iframe
- 1. 实现原理
- 2. window.name实现
- 8. location.hash + iframe
- 9. document.domain + iframe
- 10. 总结
- 4. 参考
1. 跨域原理
1. 定义
当协议、子域名、主域名、端口号中任意一个不相同时,都算作不同域。不同域之间相互请求资源,称为"跨域"
2. 同源策略(SOP,Same-Origin-Policy)
- 同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSFR等攻击。
- 同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。
3. 同源策略限制内容
- Cookie、LocalStorage、IndexedDB 等存储性内容
- DOM 节点
- AJAX 请求不能发送
3. 允许跨域加载资源的标签
1.
2.
3.