我相信在最近几天(2014年2月4日左右),微软宣布了对Azure存储(link here)的CORS支持,这显然是一个好主意。
就我而言,我只想找到一些使用自定义域映射到azure存储的确认,这将解决以下问题:
因为目前azure存储位置类似于mystorage.blob.core.windows.net,而我的实际域名(其中页面/服务是实时的)是www.mydomain.com,我收到CORS问题从不同的地方加载资产当然是域名。
所以我的问题是如果我将CNAME(例如assets.mydomain.com)映射到azure存储,这会解决与CORS相关的问题吗?在我看来它应该是,但是我想检查一下其他人是否有类似的经历他们可以评论?
提前致谢。
答案 0 :(得分:3)
如果只是通过link
,script
和img
标记等加载资源,则不应该在加载资产时遇到CORS问题。 CORS仅适用于JavaScript代码在浏览器中发出的AJAX请求。
此外,如果在Azure存储帐户Blob服务上正确配置了CORS规则,则用于解决该帐户的域无关紧要;它是当前网页从(Origin域)提供的域,必须由启用CORS的服务接受。
例如,如果您的网页是从yaysite.com提供的,并且您尝试使用XMLHttpRequest访问yay.blob.core.windows.net上的资源,则浏览器会在请求中添加Origin标头:< / p>
Origin: http://yaysite.com
然后,yay.blob.core.windows.net上的服务器需要返回一个与响应标头匹配的Access-Control-Allow-Origin标头:
Access-Control-Allow-Origin: http://yaysite.com
如果浏览器在响应中没有看到此标头,它将丢弃数据,XMLHttpRequest对象将触发error
事件。
Setting CORS rules on Azure Storage is described in this MSDN blog post