如何打开一个新窗口,以显示 AJAX 请求的流式响应?
其他类似的问题都假设响应有一个确定的URL,其他答案都有点老旧。
对于现代浏览器,可以使用fetch来调用返回的响应上的blob()方法,然后使用URL.createObjectURL()创建一个临时URL,您可以使用window.open()正常打开它。
完整示例如下:
fetch(urlThatReturnsDataOpenableByBrowser)
.then(response => response.blob())
.then(data => window.open(URL.createObjectURL(data)))