例子:
FALLBACK:
http://a.domain.com/getjson http://b.domain.com/offline.json该manifest文件位于b.domain.com上面
正常情况下,这样的FALLBACK是不允许的。
有没有什么方法,可以不使用后端代理的情况下,实现这样的跨域呢?
我自己已经尝试过了设置document.domain的方式,但FALLBACK依然无效,感觉是manifest文件先执行了,再执行的document.domain,所以根本不起作用。
<h3>为什么不用代理?</h3>
因为a.domain.com是一个提供API的服务器集群,设计的时候就考虑到大并发的,如果设置了代理,容易出现单点故障,同时这个代理所承受的压力也非常大,那么API当初的部署就都白费了。
<h3>为什么要把业务放在b.domain.com而不放在a.domain.com上面,这样就啥跨域问题都没了?</h3>
这个是基于日后维护、命名等考虑的。
<h3>通过applicationCache对象来自动判断网络状况,处理请求</h3>
这个是最后一个方案,当applicationCache对象得知当前浏览器online的时候,正常访问http://
a.domain.com/getjson,当applicationCache对象得知浏览器offline的时候,让浏览器去访问offline.json,并且在manifest中,设置offline.json为CACHE。这种方式就完全弃用了FALLBACK的机制,实现比较麻烦,所以这个是最后没办法中的办法。
集思广益,我之前搜索了一下,发现FALLBACK的相关资料很少。
我来AT几个前端帮忙解答,如果打扰了,请原谅...
@
CatChen @
underone @
bang590 @
dndx @
hotoo @
wangyan @
loo2k @
hzlzh @
sofish @
alanoy
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/44214
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.