一、CORS

  • 服务器端设置响应头 Access-Control-Allow-Origin,设置好可访问的网站

二、JSONP

  • 客户端提前设置一个函数,接收一个参数
  • 服务器端运行客户端设置的函数,并设置好能够读取数据的网站
  • 为了提前设置的函数不重名,可以设置一个随机函数名,放到 referer 里,后端读取

问:JSONP 是什么?

答:我们在跨域的时候当前浏览器不支持 CORS,我们必须使用另外一种方法跨域,于是我们去请求一个 JS 文件,JS 文件会执行一个回调,回调里面就有我们的数据 ,回调函数的名字是可以随机生成的。

优点:兼容 IE,可以跨域
缺点:

  • 由于它是 script 标签,它读不到 AJAX 精确的状态,不知道状态码、响应头等等,只知道成功和失败
  • 由于它是 script 标签,他只能发 GET 请求,不支持 POST

「@浪里淘沙的小法师」