zxdfe / FE-Interview

Every step counts
34 stars 1 forks source link

第64题:什么是同源策略,什么是跨域?解决跨域的方式有哪些? #65

Open zxdfe opened 2 years ago

zicuan123 commented 1 year ago

同源策略:一个域下的js脚本未经允许的情况下,不能访问另一个域下的内容。通常判断域的依赖是协议、域名、端口号是否相同,只要有一个不相同,则是跨域。同源策略是对js脚本的限制,并不是对浏览器的限制,比如img、script标签请求就不会有跨域 解决跨域的方式:

  1. jsonp(利用script标签没有跨域限制的漏洞,缺点:只支持get请求)
  2. cors(设置Access-Control-Allow-Origin:指定可访问资源的域名)
  3. websocked:是HTML5的一个持久化协议,它实现了浏览器与服务器的全双工通信,同时也是跨域的一种解决方案
  4. postMessage(HTML5新增API用于多窗口消息、页面内嵌iframe消息传递),通过onmessage监听传递过来的数据)
  5. Node中间件代理
  6. Nginx反向代理
2734209032 commented 1 year ago

同源策源:浏览器提供的一种安全策略,不允许不同源的两个url进行交互,只存在于浏览器 解决跨域: 1.cors 设置响应头 2.起一个服务器

Qian-e commented 1 year ago

同源策略是浏览器提供安全的策略,如果协议,端口、域名相同则是同源策略,反之则跨域。解决跨域的方式有:JSONP、CORS、Nginx反向代理、Node中间件代理