跨域调用文件的解决方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
跨域调用文件的解决方案
问题起因:前端解决,多个网站,使用同样的更新公告。
解决方案:新建一个js文件,以json格式存放公告,把文件放在外网可以访问的服务器上,然后在各个项目中以绝对路径的形式调用这个js文件,再对json数据进行操作,显示在需要公告的地方。
过程心得: 为了省去逐一更新各个网站的工作,首先,我立即想到的是使用一个公用的文件,各个网站都调用这个公用文件,一旦有更新,只需修改公用文件,不必更新每个网站。
于是,我新建了一个html文件,把公告的div放在这个文件中,然后文件放在外网可以访问的服务器上。却忽略了“跨域”的问题。无论使用“include”包含文件,还是使用jquery的ajax方法$.get(),都会报错,并且根本读取不到html文件里面的内容。因为这两种方法都不能跨域读取文件的,这里的“域”是指不在同一站点。
冥思苦想后,又想到了使用iframe框架。iframe可以加载到公用html文件的内容,可是iframe的自适应高度的问题,一直也没有完美的解决方案。公共内容有背景颜色,还有修饰的icon,所以我需要iframe自适应高度。没有公告时,高度为0,有公告时,根据内容自适应高度。试过之后,决定放弃。
山穷水尽疑无路,柳暗花明又一村。我准备放弃对这个问题的研究。不过我暗暗告诉自己,技术一直在不断发展,今天没有办法能解决这个问题,也许以后这种跨域问题能很轻松的解决。忽然,一个idea闪过我的脑海,我顿时有种豁然开朗的感觉。我迫不及待的打开项目,试验了我的想法,果然,这次我的思路没有错,这个“跨域”问题终于完美的解决了。
我一直纠结在如何读取html文件这个问题上,一开始的思路就错了。公用文件可以是各种形式的的。这次我新建一个js文件,以json格式存放公告,然后在各个项目中以绝对路径的形式调用这个js文件,再对json数据进行操作,显示在需要公告的地方,不就解决所谓的跨域问题了吗。
呵呵,折腾了一天的时间,这个问题终于完美的解决了,还是挺有成就感的。