我的页面上有一个 iframe,在该 iframe 内我执行代码:
$.ajax({
url: '/SamplePage/ExportToExcel',
async: false,
data: par,
type: 'POST'
});
响应返回正常,但是我没有收到“保存附件”对话框,什么也没有发生...为了清楚起见,标头很好(内容配置、mime 类型等),就像我使用纯表单提交执行导出时一样有用。看来和ajax调用有关系。它会以某种方式起作用吗?
Thanks
为了扩展达林的答案,我是这样做的:
我有一个隐藏的表单,其中有一个隐藏的输入元素,用于动态保存我希望转换/导出的值:
<form id="svg_export_form" method="POST" style="display:none;visibility:hidden">
<input type="hidden" name="svg" />
</form>
然后我有这个 jQuery 代码来动态填充带有 post 参数的元素,然后提交表单。
$('#svg_export_form > input[name=svg]').val(svg_code);
$('#svg_export_form').attr('action','api/reports/convert/svg/to/png');
$('#svg_export_form').submit();
并且由于返回的响应(来自 api 调用)设置了 Content Disposition 标头,因此此表单提交操作不会像普通表单提交一样引导用户离开当前页面(而只是返回附件),因此仍然会产生错觉典型的 Ajax 提交:-)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)