首先了解下浏览器的同源策略
跨域是浏览器行为,不是服务器行为。
同源策略SOP(Same origin policy)是一种约定,
由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSRF等攻击。
所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。
解决跨域问题方法如下:
jsonp跨域:
动态创建script跨域
这个没什么好说的,因为script标签不受同源策略的限制。
document.domain + iframe 跨域
此方案仅限主域相同,子域不同的跨域应用场景。
1.)父窗口:(http://www.domain.com/a.html)
2.)子窗口:(http://child.domain.com/b.html)
nginx 代理跨域
就是在客户端和真实的服务器之间有一台代理服务器,所有的请求都是这台固定的代理来进行转接的,进而绕过浏览器的限制。
nodejs 中间件代理跨域
可以把node相像成nginx,类似的。
服务端在头部信息里面设置安全域名
header('Access-Control-Allow-Origin:*');
header('Access-Control-Allow-Headers:X-Requested-With,accept, origin, content-type')
感谢收看本期Q程序员说,最后别忘点赞加关注哈!我接着继续整,有啥不爽留言。
![e6a83d2dc55dd8abf71ad723a62129bd.png](https://i-blog.csdnimg.cn/blog_migrate/73abfa1f3c3674cb0e0b17f407607340.jpeg)