JSONP

108 阅读1分钟

概述

JSONP是一种跨域解决方案(本身是get请求,所以它是一种解决方案不是一种请求方式),主要是利用script标签的src属性不受跨域影响的特性来解决跨域问题的。

同源策略

同源策略是浏览器的一种安全策略(netspace公司提出来的),主要是为了保护对应浏览器的数据安全。

同源策略解决的问题

避免两个不同的网站的数据共享,比如我浏览器打开了京东又打开了淘宝

同源策略的要求

  1. 协议相同(http!=https)
  2. 端口号相同(80!=443)
  3. 域名相同

跨域的产生

在http请求下 协议 端口号 域名不同就会发生跨域 FTP协议下(文件不同也会跨域)

开宇问题的解决方案

  1. 后端响应添加响应头

      Access-control-allow-origin:*
      Access-control-allow-origin-Method:*
    
  2. 使用JSONP(JSONP需要后端的配合)

  3. 使用代理服务(proxy(devserver 开发服务))

  4. 使用 webscoket 通信

  5. postmessage

JSONP的实现

  1. jsonp他主要利用的是script标签不受跨域的影响的特性来实现的
  2. 它是通过script来链入对应的请求地址 传入对应的回调函数 通过访问的时候,后端去执行这个回调函数填入对应的值,所以我们可以通过回调函数的形参来接收返回的数据
特性
  1. jsonp本质上是一个get请求
  2. jsonp需要后端配合来进行跨域操作