我有以下代码:
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
我的问题是由于某种原因 Content-Range JavaScript 如下图所示:
Content-Range
JavaScript
你知道这是怎么回事吗?
谢谢!
很简单, content-range 是一个 标题和 不 XMLHttpRequest.prototype.overrideMimeType 来自客户端的是 content-type
content-range
XMLHttpRequest.prototype.overrideMimeType
content-type
如果暴露在外 Access-Control-Expose-Headers 您可以使用以下方法检索响应头:
Access-Control-Expose-Headers
request.getResponseHeader('Content-Range')