• 跨域


    1、JSONP
    全称:JSON with Padding
    概念:原理就是利用script标签不受同源策略的限制,在页面中动态插入了script,script标签的src属性就是后端api接口的地址,并且以get的方式将前端回调处理函数名称告诉后端,后端在响应请求时会将回调返还,并且将数据以参数的形式传递回去。
    优劣:这种方式只能发生get请求、确定jsonp的请求是否失败并不容易,大多数框架的实现都是结合超时时间来判定、不太安全,可能也会受到攻击、它只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题;很简单、老式浏览器全部支持,服务器改造非常小。

    2、Proxy
    优劣:不能用在生产环境,只能用在开发环境;dev环境配置很简单,支持多个域名

    3、CORS
    全称:Cross Origin Resource Sharing(跨域资源共享)
    概念:CORS是一种允许当前域(origin)的资源被其他域(origin)的脚本请求访问的机制
    优劣:部分老的浏览器不支持;支持所有Http谓词请求、不用注意接口规则、可用在生产环境

    4、Nginx
    概念:nginx解决跨域,是利用其反向代理的能力
    跨域原理:首先,直接在浏览器地址栏中,输入某接口地址,是不会产生跨域问题的。只有当在某域名的页面中,由该页面发起的接口请求,才可能会跨域。nginx就类似于这个浏览器,它接收到外部对它的请求(注意:nginx只会接收别人对它的请求,而不会拦截浏览器的请求),再类似浏览器地址栏一样去请求某个接口,最后将请求到的内容返回回去。
    优劣:移植灵活性低,每套环境配置可能均不相同;对立性强的小项目,使用nginx则可以降低你的开发成本,快速开发快速上线。

    5、Socket
    概念:WebSocket是一秒通信协议,使用ws://(非加密)和wss://(加密)作为协议前缀。该协议不实行同源政策,只要服务器支持,就可以通过它进行跨源通信。

  • 相关阅读:
    Visual Studio 2017 Bugs
    【翻译】7种流行的单元测试命名约定
    Markdown语法
    How to build mscorlib.dll with visual studio
    Debugging
    [HDU 1020] Encoding
    [HDU 1008] Elevator
    Python学习笔记七-错误和异常
    Python学习笔记六--文件和输入输出
    Python学习笔记五--条件和循环
  • 原文地址:https://www.cnblogs.com/ahao214/p/11795217.html
Copyright © 2020-2023  润新知