我試圖通過XHR訪問REST服務器上的資源,因爲我想下載它。Firefox緩存鍵名以anon&uri開頭= http:// xxxx
<script type="text/javascript">
function iframe_onload(){
var xmlhttp=new XMLHttpRequest();
var url = "http://example.com/document/12345"
xmlhttp.open("GET", url, true);
xmlhttp.setRequestHeader("accept","application/pdf");
xmlhttp.onload = function() {
var oIFrm = document.getElementById('myIFrm');
oIFrm.src = url;
};
xmlhttp.send(null);
}
<iframe id="myIFrm" style="visibility:hidden" src="">
</iframe>
它的工作在Chrome,Safari,IE瀏覽器只是不工作的FF,我檢查了FF緩存,從XHR第一個請求是「匿名& URI」開始,所以緩存關鍵是像「 anon & uri = http://example.com/document/12345「,並且當前頁面和url不在同一個域中,並且我已經爲服務器設置了CORS,然後第二個請求不能從緩存中獲得PDF文件,並且如果我將2服務器放在同一個域下,緩存密鑰是沒有「anon & uri」的正常密鑰,則代碼正在工作。
任何人都知道爲什麼緩存鍵是以「anon & uri =」開頭的,當我爲FF上的兩臺服務器設置CORS時,以及如何避免此問題並使代碼正常工作。
感謝,
喬伊