這是我下面的代碼。當使用XMLHttpRequest來下載圖像,我得到這個錯誤
storageRef.child('images/stars.jpg').getDownloadURL().then(function(url) {
// `url` is the download URL for 'images/stars.jpg'
// This can be downloaded directly:
var xhr = new XMLHttpRequest();
xhr.responseType = 'blob';
xhr.onload = function(event) {
var blob = xhr.response;
};
xhr.open('GET', url);
xhr.setRequestHeader('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
xhr.setRequestHeader("Access-Control-Allow-Headers", "Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");
xhr.setRequestHeader('Access-Control-Allow-Headers', 'Content-Type');
xhr.send();
// Or inserted into an <img> element:
var img = document.getElementById('myimg');
img.src = url;
}).catch(function(error) {
// Handle any errors
});
但因爲它說我不能下載映像文件:
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' http://localhost:8000 ' is therefore not allowed access.
不過,我成功地在我的img
標籤顯示的圖像。如果我可以下載它也會很好。
我使用本地主機運行此。
更新: 這是新的錯誤:
Request header field Access-Control-Allow-Origin is not allowed by Access-Control-Allow-Headers in preflight response.
請不要在圖像的代碼... –
問題是CORS問題 - 顯然URL不相同的來源頁面本身 - 無論服務器上的圖像是來自顯然不允許這樣的要求 - 這樣...什麼服務器爲圖像提供服務?它不是'http:// localhost:8000'是否 –
@JaromandaX你有鏈接如何正確使用CORS下載使用XmlHttpRequest? –