我想包括與角像這樣包括交叉起源HTML模板
<div ng-include="http://SOME_OTHER_DOMAIN/template.html"></div>
HTML模板如圖所示,該模板是在另一個領域,是在S3存儲桶更具體。 我完全控制這個桶,我已經應用了這樣的Cors配置。
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
由於正確通過檢查網絡流量的預期模板負荷鍍鉻顯示此響應頭:
access-control-allow-methods:GET
access-control-allow-origin:*
access-control-max-age:3000
content-encoding:gzip
content-type:text/html
........
現在奇怪的是,沒有任何修改或變更,模板停止加載和瀏覽器抱怨有沒有訪問控制允許請求上的策略。事實上,當我再次檢查網絡時,CORS頭部缺失。這種情況是隨機發生的,甚至同時從chrome和firefox檢查網站,一個瀏覽器會發現預期的CORS,另一個則不會。
我已閱讀關於瀏覽器的同源策略和跨源資源共享(CORS)策略,但我發現這種行爲真的很奇怪。
我想要你的建議,這是甚至瀏覽器問題,緩存相關,S3錯誤或其他?
我發現了一些涉及代理服務器的解決方案,只是給CORS提供沒有的請求,但爲此保留一臺服務器有點難度,更不用說s3默認已經實現了CORS。
感謝您的回答,ng-include僅僅是一個例子,實際上它是一個變量,所以沒有錯誤。至於緩存,我不知道這是一件事情,因爲我嘗試過使用匿名方法,也使用了開發人員工具上禁用的緩存。我現在的猜測是,雲端分佈造成麻煩,這就是爲什麼一些請求是好的,有些則沒有。無論如何,我會嘗試添加緩存破壞,然後檢查錯誤是否仍然發生! –