两个域名指向同一个ip(web前端面试题_1)

首先了解下浏览器的同源策略跨域是浏览器行为,不是服务器行为。同源策略SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSRF等攻击。所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。解决跨域问题方法如下:jsonp跨域:<script>var script = document.createElement('script');script.type = 'text/javascript';// 传参并指定回调执行函数为onBackscript.src = 'http://www…..:8080/login?user=admin&callback=onBack';document.head.appendChild(script);// 回调执行函数function onBack(res) {alert(JSON.stringify(res));}</script>动态创建script跨域这个没什么好说的,因为script标签不受同源策略的限制。document.domain + iframe 跨域此方案仅限主域相同,子域不同的跨域应用场景。1.)父窗口:(http://www.domain.com/a.html)<iframe id="iframe" src="http://child.domain.com/b.html"></iframe><script>document.domain = 'domain.com';var user = 'admin';</script>2.)子窗口:(http://child.domain.com/b.html)<script>document.domain = 'domain.com';// 获取父窗口中变量alert('get js data from parent —> ' + window.parent.user);</script>nginx 代理跨域就是在客户端和真实的服务器之间有一台代理服务器,所有的请求都是这台固定的代理来进行转接的,进而绕过浏览器的限制。nodejs 中间件代理跨域可以把node相像成nginx,类似的。服务端在头部信息里面设置安全域名header('Access-Control-Allow-Origin:*');header('Access-Control-Allow-Headers:X-Requested-With,accept, origin, content-type')感谢收看本期Q程序员说,最后别忘点赞加关注哈!我接着继续整,有啥不爽留言。

本文出自快速备案,转载时请注明出处及相应链接。

本文永久链接: https://www.175ku.com/27332.html