• Network


    一、什么是跨域?

    当浏览器执行脚本时会检查是否同源,只有同源的脚本才会执行,如果不同源即为跨域。这里的同源指访问的协议、域名、端口都相同。

    二、跨域流程

    三、如何解决跨域?

    3.1 使用Nginx部署为同一域

    3.2 配置当次请求允许跨域

    在Gateway微服务中,添加配置bean,可以实现此功能:

    3.3 其他方法(参考)

    1、jsonp
    利用了 script 不受同源策略的限制
    缺点:只能 get 方式,易受到 XSS攻击

    4、Html5 postMessage 方法
    允许来自不同源的脚本采用异步方式进行有限的通信,可以实现跨文本、多窗口、跨域消息传递
    缺点:浏览器版本要求,部分浏览器要配置放开跨域限制

    5、修改 document.domain 跨子域
    相同主域名下的不同子域名资源,设置 document.domain 为 相同的一级域名
    缺点:同一一级域名;相同协议;相同端口

    6、基于 Html5 websocket 协议
    websocket 是 Html5 一种新的协议,基于该协议可以做到浏览器与服务器全双工通信,允许跨域请求
    缺点:浏览器一定版本要求,服务器需要支持 websocket 协议

    7、document.xxx + iframe
    通过 iframe 是浏览器非同源标签,加载内容中转,传到当前页面的属性中
    缺点:页面的属性值有大小限制

    参考文献

    ————————————————
    版权声明:本文为CSDN博主「ConstXiong」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/meism5/article/details/90414283

  • 相关阅读:
    1045 access denied for user 'root'@'localhost' using password yes
    1045 access denied for user 'root'@'localhost' using password yes
    JavaWeb:EL表达式
    JavaWeb:EL表达式
    JavaWeb:EL表达式
    JavaWeb:EL表达式
    ie9支持html5 的canvas
    mysql 大于当前时间条件查询
    java 获取距离结束时间几天几小时
    java8 stream sorted
  • 原文地址:https://www.cnblogs.com/frankcui/p/15202680.html
Copyright © 2020-2023  润新知