我正在尝试使用XMLHttpRequest下载二进制文件并存储其内容。 URL查询返回PDF数据。这是对服务器和响应的请求的样子:
POST /download.php HTTP/1.1
[....]
id=1&file_type=pdf
HTTP/1.1 200 OK
Server: Apache
Content-Disposition: attachment; filename="file_1.pdf";filename*=ut8'en'file_1.pdf
X-Cnection: close
Content-Type: application/octet-stream
[.....]
Connection: keep-alive
%PDF-1.3
[raw PDF data]
我尝试了这段代码,但我仍然得到一个空白的答案:
var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://foo.example.com/download.php', true);
//xhr.overrideMimeType("text/plain; charset=x-user-defined");
//xhr.responseType = 'arraybuffer'; // blob too
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
var file = xhr.response // this.response
// store it somewhere ..
}
}
xhr.send("id=1&file_type=pdf");
}
注意:请求是通过以下网址发送的:www.example.com
通过XHR做到这一点有什么诀窍吗?你会如何实现这一目标?
非常感谢任何帮助或提示:)