[面试专题]跨域解决方案

跨域产生

同源策略限制,同源是指:域名,协议,端口相同。

1.跨域资源共享(CORS)

需要被请求方的服务端设置: Access-Control-Allow-Origin。兼容性不够好,在IE10以下的浏览器不支持。

2.服务器代理

A客户端访问A服务器,并在A服务器上做代理访问B服务器把请求结果返回A客户端,即实现了A客户端请求B服务器的跨域需求。

3.JSONP

原理:所有具有src属性的HTML标签都是可以跨域的,包括<script><img><iframe>,所以我们通常会把一些图片资源放到第三方服务器上,然后可以通过<img>标签的src属性引用。

  1. 首先在客户端注册一个callback, 然后把callback的名字传给服务器。

  2. 服务器先生成 json 数据。将 json 数据直接以入参的方式,放置到 callback中,这样就生成了一段 js 语法的文档,返回给客户端。

  3. 客户端浏览器,解析script标签,并执行返回的 javascript 代码,此时数据作为参数,传入到了客户端预先定义好的 callback 函数里.(动态执行回调函数)

    原文作者:逺方小鎭
    原文地址: https://segmentfault.com/a/1190000008776669
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞