问题
- 什么是跨域?
- 什么是同源策略?
- 什么是jsonp,jsonp是干什么用的?
回答
1.跨域:协议、域名、端口都相同才同域,否则都是跨域。跨域是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实施的安全限制。
2.根据第一个问题答案先回答第三个问题,jsonp就是解决跨域的一种方法。出于安全考虑,服务器不允许 ajax 跨域获取数据,但是可以跨域获取文件内容,所以基于这一点,可以动态创建 script 标签,使用标签的 src 属性访问 js 文件的形式获取 js 脚本,并且这个 js 脚本中的内容是函数调用,该函数调用的参数是服务器返回的数据,为了获取这里的参数数据,需要事先在页面中定义回调函数,在回调函数中处理服务器返回的数据,这就是jsonp原理。
3.同源策略:同源指的是协议,域名,端口 这三个相同及同源,浏览器大多内容受同源策略影响,但以下三个标签不受影响
<img src=''>
<link href=''>
<script src=''>