今天面试发现Jsonp完全忘了啊,前端的跨域手段竟然被我搞前端的忘了……
跨域
问题来源:浏览器的同源策略限制。
所谓同源(即指在同一个域)就是两个页面具有相同的协议,主机和端口号
当一个请求url的协议、域名、端口三者之间任意一个与当前页面不同即为跨域
Jsonp(Json with padding)
jsonp是一种解决跨域的通信方式。
原理:利用script标签的src属性来实现跨域。(js脚本、css样式文件、图片这三者是可以与页面本身不同源的)
通过将前端方法作为参数传递到服务器端,然后由服务器端注入参数之后再返回,实现服务器端向客户端通信。
由于使用script标签的src属性,因此只支持get方法。
一个简单的jsonp实现,其实就是拼接url,然后将动态添加一个script元素到头部。
其他方法还有:Nignx、cros、代理服务。