作者回复: 是的。对于简单请求,没有询问情况,浏览器一次request/response中既拿到响应,也拿到头部,如果不允许跨域,不给页面JS代码使用即可
作者回复: 二级域名通配特不被直接支持,通常服务器配置都支持if、map等语法,通过这些语法对请求中的Origin头部值匹配成功后,实时构造Access-Control-Allow-Origin是一种解决方案。 例如如果你是Nginx可以参考:http://joinyoo.com/2017/06/set-access-control-allow-origin-wildcard-subdomains-to-make-cors-safer/
作者回复: 1、是的,不好意思笔误。 2、是。 3、针对的是preflight请求。 4、二者都有。
作者回复: 用这个试试:https://github.com/russelltao/geektime-webprotocol
作者回复: 1、是的; 2、RFC规范指定了一些HTTP头部,当Server发出时,Client如果收到,就应该遵守这些规范,缓存response。 3、由于互联网中有些server没有让client缓存,但浏览器的开发者从统计角度出发,仍然会缓存一些没有明确说可以缓存的response。 具体参见第29-32课。
作者回复: 1、简单请求与复杂请求的划分依据是浏览器的风险; 2、规范与否,主要看是否针对老浏览器,即实现有bug的浏览器。如果都是你的不同域名的站点,你肯定可以基于七层负载均衡来实现的,这样做没问题的。跨域主要是担心两个不同所有者的网站互相影响。
作者回复: 是的,服务器不对跨域请求做检查。没有钱转完的问题,因为域名A下的 cookie,浏览器不会带到访问域名B的请求中。
作者回复: 其他方法并不推荐,但是可以用,比如JSONP。针对一些老的浏览器也会因为限制不严格有更多的方式,可以参考一些文章,比如https://blog.csdn.net/ligang2585116/article/details/73072868