FE Note
hi
jsonp跨域

两个网站要共享数据

jsonp 为跨域的最常见的手段(不能发送数据,只支持get请求) ajax会有限制问题,会出现不允许访问。 jsonp,cros,postMessage(iframe),websocket;

  • jsonp:scritp 不会导致跨域问题,我的网站引用你的网站的js,img,css,不用img和css的原因是默认会被转成图片和样式,img常用作记录访问页面的次数,统计请求这样图片的次数。

jsonp是通过src跨域的,并且只支持get请求。

由于src没有访问限制,可以通过src引用其他网站的数据(此网站必须通过这样的接口)

  • cros 让被访问的服务器 允许跨域即可 (需要服务端支持)
  • iftame 跨域 html5 提供的API
  • websocket html5 提供的API

jsonp 的原理

  • 1.在当前js中声明一个全局函数 function fn(){}
  • 2.动态创建script标签 通过script 标签引用其他网址并且将这个全局函数名字传递给后台
<script src ="http://localhost:3000/getuser?callback=fn">
  • 3.后台返回函数执行 fn('{name:1}');

最后修改于 2020-11-09