下载Json文件:IE-11投掷414请求URI太大
问题描述:
我想下载json对象作为cvs文件。这个JSON对象实际上是由浏览器本身的Java对象构成的。我没有发起任何网络请求获取。
它在Chrome中正常工作,但IE-11在Network-> Response选项卡中抛出错误。下载Json文件:IE-11投掷414请求URI太大
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>414 Request-URI Too Large</title>
</head><body>
<h1>Request-URI Too Large</h1>
<p>The requested URL's length exceeds the capacity
limit for this server.<br />
</p>
<hr>
<address>Omniture DC/2.0.0 Server at *.112.2O7.net Port 80</address>
</body></html>
在控制台中,我得到了这个。
The code on this page disabled back and forward caching. For more information, see: http://go.microsoft.com/fwlink/?LinkID=291337
我的JavaScript中的代码如下:
var fileName = "Group Assignment";
var uri = 'data:text/csv;charset=utf-8,' + escape(CSV);
var link = document.getElementById('download-as-csv');
link.href = uri;
link.download = fileName + ".csv";
link.innerHTML = 'Download as CSV';
答
我怕你能做到这样。 Microsoft Internet Explorer对URI有一个limit up to 2048 characters。
相反,它应该会更好,你从diferent页面服务于这个CSV并指出IE从那里得到或使用msSaveOrOpenBlob
例如:
navigator.msSaveOrOpenBlob(new Blob(CSV.split('')), { type: 'text/csv' }), fileName + ".csv");
*只能从IE 10以上
确定,然后我怎么做? – Ahmad
我已经更新了我的答案 – Cleiton
非常好,所以我在download-as-csv元素的点击事件中编写这个代码?请原谅我的忍耐 – Ahmad