无法将大型html内容POST到Chrome上的服务器
Unable to POST large html content to server on Chrome
我正试图通过POST请求发送HTML内容,但它无法在服务器端使用Chrome进行传递。当我使用Mozilla时,在jsp中获取请求数据。当HTML内容很小时,这在两种浏览器中都有效。我正在使用ApacheFOP生成一个包含这些HTML内容的PDF。
var iframe = document.createElement('iframe');
iframe.setAttribute('name','eyeframe');
document.body.appendChild(iframe);
var myform = document.createElement('form');
document.body.appendChild(myform);
myform.setAttribute('action','myJspToRenderHtmlAsPdf.jsp');
myform.setAttribute('method','post');
myform.setAttribute('target','eyeframe');
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", "htmlContent");
hiddenField.setAttribute("value", strHTML);
myform.appendChild(hiddenField);
myform.submit();
我将HTML划分为块,并将它们发布并重新加入jsp中。这种方法在chrome和即上也失败了
chrome(或者整个webkit)中的输入有字符限制-524288,您可以通过在控制台中键入来测试它
var el = document.createElement("input");
el.maxLength
为什么不使用简单的FormData?
var formData = new FormData();
formData.append("htmlContent", strHTML);
var request = new XMLHttpRequest();
request.open("POST", "myJspToRenderHtmlAsPdf.jsp");
request.send(formData);
有一些时间来写简单的演示。服务器响应生成PDF:
<a href="#" id="test">Download</a>
<script>
var formData = new FormData();
formData.append("htmlContent", 'test');
var request = new XMLHttpRequest();
request.responseType = 'blob';
request.open("POST", "myJspToRenderHtmlAsPdf.jsp");
request.onload = function(event) {
if (request.status == 200) {
var blob = new Blob([request.response], {type: 'application/pdf'});
var url = URL.createObjectURL(blob);
var link = document.querySelector('#test');
link.setAttribute('href', url);
} else {
// Handle error
}
};
request.send(formData, true);
</script>
相关文章:
- CORS-服务器端cookie没有保存在chrome浏览器上
- 无法将大型html内容POST到Chrome上的服务器
- HTML5视频无法在chrome上工作,在服务器上托管后的IE,mov文件中的视频(quicktime格式)
- Android/Chrome jQuery AJAX请求在到达服务器之前失败,并出现parserror
- 当通过Node.js服务器访问时,Javascript文件在Chrome上工作,但从文件夹打开时不工作
- SignalR使用Chrome上的服务器发送事件
- 来自chrome扩展的服务器端Facebook身份验证
- Chrome扩展:通过服务器上的JavaScript将请求发送到后台页面
- 从服务器加载的javascript变量不是在chrome中定义的,而是在firefox中定义的
- Chrome应用程序:从服务器上的文件读取和写入数据
- CORS AJAX 请求 Chrome 中的本地 WSGI 服务器时延迟过长
- Chrome 的网上商店服务器拒绝扩展程序,并显示“错误:清单必须定义版本
- Javascript在Firefox中工作,但现在来自Web服务器时在Chrome中工作
- 网页无法从Phonegap中的远程服务器检索数据(但在Chrome中工作正常)
- Fotorama - 适用于IE,Firefox,但不适用于Chrome(上传到服务器)
- 如何从适用于 Chrome 应用的 GCM 连接服务器获取注册令牌
- Chrome扩展程序每隔一段时间检查来自服务器的数据
- 将文件从本地存储上传到具有 Chrome 扩展名的服务器
- 如何在Chrome App中创建一个简单的WebSocket服务器
- 使用jquery禁用按钮,停止向chrome服务器发送输入——MVC