HTML5学堂:在之前的文章当中,我们依次介绍了iframe跨域、JSONP跨域以及postMessage跨域。今天我们将针对跨域进行收尾,讲解最后一种,也是比较常见的服务器代由。同时我们针对之前提到的这4类跨域方法进行一个比较和总结。
文件访问限制:A域的前端页面是能够访问A域的后台,而A域的前端页面不能够去访问其他域的后台(浏览器不允许)
跨域来自于需求:当客户需求告诉我们,需要让A域的前端页面去访问B域的后台,此时就出现了跨域,此时我们需要找一些方法或途径解决这个“原本被禁止的功能”。
解决跨域的常见途径:常见解决途径有4种,分别是iframe、JSONP、postMessage和服务器代由访问。这四种方法均没有直接让A域前端去访问B域后台(换句话说,均采用了“曲线救国”的方式来解决问题)
我们在之前的文章中已经讲解了iframe跨域、JSONP跨域以及postMessage跨域,还有一个服务器代由访问没有讲解。
到底什么是服务器代由呢?所谓的服务器代由就是:在A域的服务端增加一个后台接口,由A域的JS通过AJAX访问A域的接口,之后由 A域的后台取访问B域,再将数据返回给A域的前端。
服务器代由访问,方法对前端影响不大,但是后台相对会麻烦很多。
出于安全方面的考虑,会限制本域服务器的代由。
要限制的原因:向任何站点开放的代由容易被滥用。
如何防止代由被滥用?——1 在编码时,可以把限定的URL地址编码到代由自身中,如果不是相应的URL就不能够使用代由;2 提供限制的选项。
PLUS:两者虽然在具体实现上有所不同,但是在整体流程上比较类似。
HTML5小编-利利 耗时5h
欢迎沟通交流~HTML5学堂