如何发布到URL并打开一个新窗口以显示pdf格式的响应
How do I Post to a URL and open a new window to show the response which is a pdf
我需要通过ajax将大量数据发布到URL(比如生成pdf)。服务器以pdf格式返回生成的报告(不是文件,而是流)。如何打开新窗口来显示内容。对于GET请求,只需执行以下操作即可:
<a href="/generate-pdf?from=xxxx-xx-xx&to=yyyy-yy-yy" target="_blank" >Report from x to y</a>
但由于发送到服务器的数据的大小,我需要进行POST。谢谢
当您打开一个新窗口时,它会向url发出get请求。
你应该得到一个url,里面有关于请求哪个pdf的信息,然后从服务器上加载一个带有该pdf的页面。
它有帮助吗?
这就是我最终要做的:
function generatePdf(){
var target = document.getElementById('box-1');
var spinner = new Spinner(opts).spin(target);
var tree = $("#tree_container").fancytree("getTree");
var selectedNodes = tree.getSelectedNodes(true)
var inputs = '';
$('#report_card_gen_form').remove();//remove any form that might have been created from previous request
var selectedMarkingPeriod = $( "#marking_period_selector option:selected");
if(selectedMarkingPeriod.val() == -1){
inputs += '<input type="hidden" name="school_year_id" value="' + selectedMarkingPeriod[0].dataset.syId + '">';
}
else{
inputs += '<input type="hidden" name="marking_period_id" value="' + selectedMarkingPeriod.val() + '">';
}
for(var index = 0; index < selectedNodes.length; index++){
inputs += '<input type="hidden" name="studentIds[]" value="' + selectedNodes[index].data.id + '">';
//form.append(selectedNodes[index].data.nodeType + '[]', selectedNodes[index].data.id);
}
console.log('form data');
console.log($(inputs));
$('body').append('<form action="/grades/report-cards" method="POST" name="report_card_gen_form" id="report_card_gen_form" target="_blank">' + inputs + '</form>');
$('#report_card_gen_form').submit();
spinner.stop();
}
相关文章:
- 谷歌地图API-信息窗口显示谷歌位置API信息
- 如何使用 javascript 警报窗口显示验证消息
- 使用模式消息/窗口显示数据库记录
- 单击按钮并将其下载为图像格式时,如何使用引导模式弹出窗口显示D3图表
- 为什么我的html弹出窗口显示我的函数的文本,而不是运行它们
- 如何让角度引导弹出窗口显示字典值
- 当子窗口打开时,父窗口显示为灰色
- 如何检查是否允许弹出窗口显示在客户端的浏览器中
- 同步窗口.显示()
- 简单模式弹出窗口显示每个会话一次
- 谷歌api信息窗口显示在谷歌地图api上的1个标记下
- 单击传单中的标记时,如何防止弹出窗口显示
- 点击警报窗口显示
- 如何使用ajax的Magnific弹出窗口显示测验
- 在弹出窗口打开之前,模式弹出窗口中的Elevate zoom缩放窗口显示在内容后面
- 对溢出的文本进行设置时,角度uib弹出窗口显示在错误的位置
- 你能控制用Javascript创建的窗口显示在哪个显示器上吗
- 在双显示器上复制弹出窗口显示
- 信息窗口显示在同一标记上
- 模式窗口显示得非常简短