【发布时间】:2019-03-04 16:45:45
【问题描述】:
我有以下代码:
const URL = 'https://www.tophtml.com/snl/15.mp3';
window.addEventListener('load', function() {
const button_load = document.querySelector('.button_load');
button_load.addEventListener('click', async function() {
let url = URL + '?nocache='+(new Date()).getTime();
let arrayBuffer = await fetchData(url, 501, 510);
console.log('This is the response itself:');
console.log(arrayBuffer);
});
});
function fetchData(url, byte_from, byte_to) {
return new Promise((resolve, reject) => {
var request = new XMLHttpRequest();
request.responseType = 'arraybuffer';
request.open('GET', url, true);
request.setRequestHeader("Range", "bytes=" + byte_from + "-" + byte_to);
request.onload = function() {
resolve(request.response);
}
request.onreadystatechange = function() {
if (this.readyState == this.HEADERS_RECEIVED) {
console.log('These are the "Response Headers" visible to JavaScript:');
console.log(request.getAllResponseHeaders());
}
}
request.send();
});
}
<button class="button_load">Load</button>
你也可以在这里找到:
https://codepen.io/anon/pen/OBJqZG?editors=1010
我的问题是,由于某种原因,JavaScript 的响应标头对于 JavaScript 不可见,如下图所示:
知道这里发生了什么吗?
谢谢!
【问题讨论】:
标签: javascript html xmlhttprequest httpresponse