JSONP_跨域

1.什么是同源策略

同源策略:
浏览器处于安全方面的考虑,只允许与本域下的接口交互,不同源的客户端脚本在没有明确授权的情况下,不能读取对方的资源。
同协议:(http、file、shh、https、tel、ftp...)以上协议必须相同;
同域名:第一个 // 到第二个 / 之间的部分必须相同;
同端口:一般为80,具体看设置。
以上三条都相同则为同源
举例:
a.b.com,a.b.com/a.html 同源,域相同。
b.com, a.b.com 不同源,域不同,前者的域更”窄“。
a.b.com:8080, a.b.com/3000 不同源,端口不同。
http://a.b.com, https://a.b.com 不同源,协议不同。

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

跨域顾名思义就是突破同源策略的限制,去不同的域下访问数据。 主要有如下几种实现形式:

  • jsonp
  • CORS:跨域资源共享(Cross-Origin Resource Sharing)
  • 降域
  • postMessage()

3.JSONP 的原理是什么

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

4.CORS是什么

CORS(cross origin resource sharing)跨资源共享。
原理:跨域的产生是因为浏览器出于安全方面的考虑,只允许与本域下的接口交互。所以如果我们能让后台跨域文件只识别某些web服务器的话,那么就可以进行对接。
方法在后端的返回头部设置header=('Access-Control-Allow-Origin',指定网址)

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

hosts 文件配置
127.0.0.1 www.clark.com
127.0.0.1 www.a.clark.com
127.0.0.1 www.b.clark.com
代码地址
效果均实现

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