例子:
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
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