李永毅
(长治学院 计算机系,山西 长治 046011)
随着大数据及互联网的迅猛发展,大型分布式web系统应运而生,促使前端脚本需要跨域访问异域数据,这与客户端浏览器脚本的同源策略背道而驰,如何合理解决浏览器脚本代码的同源策略限制,使其能够跨域访问是目前面临的问题[1]。针对浏览器脚本代码跨域请求的同源策略限制,提出几种解决方案,并进行对比,为分布式跨域请求的不同场景提供了灵活的解决方案。
同源策略是浏览器为了安全性考虑,实施的最核心的安全性策略[2]。同源指的是协议、ip地址及端口号相同。同源策略指的是同一源上加载的文档或脚本代码不能访问另一源上的资源[3]。如:JavaScirpt脚本不能访问与其非同域的对象。若要访问非同域对象时就需要跨域请求。
图1JSONP跨域访问
如图1所示。JSONP跨域获取非同域数据需要:①首先浏览器访问服务器A中a.html文件。②服务器A对浏览器做出响应,浏览器接收到响应的severA.html文件,severA.html中包含xxx函数的定义及响应事件脚本代码。③客户端浏览器响应事件,执行响应事件代码,动态生成