进阶十三 跨域

2017-06-05  本文已影响0人  饥人谷_流水

1. 什么是同源策略

浏览器出于安全方面的考虑,只允许与本域下的接口交互。不同源的客户端脚本在没有明确授权的情况下,不能读写对方的资源。

本域指的是:

*不同源的例子: *
http://jirengu.com/main.jshttps://jirengu.com/a.php (协议不同)
http://jirengu.com/main.jshttp://bbs.jirengu.com/a.php (域名不同,域名必须完全相同才可以)
http://jiengu.com/main.jshttp://jirengu.com:8080/a.php (端口不同,第一个是80)

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

跨域:
允许不同域的接口进行交互

跨域的几种实现形式:

  1. JSONP
  2. CORS
  3. 降域
  4. postMessage

3. JSONP 的原理是什么

web服务器调用js文件不受是否跨域的影响(而且,带有src属性都可以跨域,如:img iframe script)
JSONP就是依据这个特性,与web服务器调用脚本的方式一样,来引入生成动态的js文件,也就是引入在src里面输入你要的后端文件。
JSONP需要向后台传入一个callback参数,然后服务器返回的数据时callback函数会将数据包裹。

4. CORS是什么

前端用 XMLHttpRequest 跨域访问时,浏览器会在请求头中添加:origin
后端会添加一个响应头:Access-Control-Allow-Origin
浏览器判断该相应头中Access-Control-Allow-Origin的值是否包含 Origin 的值,如果有则浏览器会处理响应,我们就可以拿到响应数据,如果不包含浏览器直接驳回,这时我们无法拿到响应数据。

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

代码

上一篇 下一篇

猜你喜欢

热点阅读