JSONP_跨域

什么是同源策略

  • 同协议,如都是http或者https
  • 同端口,如都是:8080或者:80端口
  • 同域名,如是http://www.jirengu.com/a.js和http://www.jirengu.com/b.js就是同域的。

什么是跨域?跨域有几种实现形式

  • 允许不同域的接口进行交互,俗称跨域
  • 跨域的几种方式
    1. JSONP
    2. CORS
    3. 降域
    4. postMessage

JSONP 的原理是什么

  • 通过script标签引用其他域下的js,可以达到跨域的请求目的。
  • 通过监听事件在head头内添加script标签。
  • script的引用地址为跨域的地址,和后端指定某个参数,参数的值名是当前页面的执行函数名。
  • 然后后端返回的包含了这个执行的函数段
  • 页面通过后端返回的数据执行函数,达到跨域的目的。

CORS是什么

  • CORS 是跨域资源共享,是一种ajax跨域请求资源的方式
  • 当使用XMLHttpRequest发送请求时,浏览器会给改请求加一个请求头:origin
  • 后台进行处理,确定接受请求,并返回一个响应头:Access-Control-Allow-Origin
  • 浏览器判断该相应头中是否包含Origin的值,如果有则浏览器会处理响应,如果不包含,则无法取到数据。

根据视频里的讲解演示三种以上跨域的解决方式

  • 本地HOSTS配置
Paste_Image.png
  • JSONP获取天气预览地址
  • CORS实现跨域
  • 降域实现跨域a.html
  • 降域实现跨域b.html
JSONP_跨域_第1张图片
Paste_Image.png

你可能感兴趣的:(JSONP_跨域)