如何解决将对象导出为XML文件,并通过Symfony 5在AJAX调用中强制下载文件
我使用symfony 5,并且有一个包含会员详细信息的页面。我现在希望能够从会员中导出地址数据。为此,我在页面上有一个按钮,可通过AJAX在我的控制器中调用一个函数。如果我直接调用该站点,那么我会得到“保存文件”窗口,因此即使我不确定100%肯定也要在控制器中做正确的事情。实际上,我确实想强迫它自动将文件保存在客户端的特定文件夹中,而不是我手动进行,并且我确实希望仅通过AJAX按钮单击即可,但这似乎不起作用。我在哪里出错了?
myjs.js
$('#exportaddress').on("click",function(){
$.ajax({
type: 'post',url: "/export-address",success: function (response) {
}
});
});
mycontroller.php
/**
* @Route("/export-address",name="export_address")
*/
public function memberExport(){
$memberId= '123';
$em = $this->getDoctrine()->getManager();
$memberData = $em->getRepository(Member::class)->getAddressData($memberId);
$encoders = [new XmlEncoder(),new JsonEncoder()];
$normalizers = [new ObjectNormalizer()];
$serializer = new Serializer($normalizers,$encoders);
$jsonContent = $serializer->serialize($order,'xml',['groups' => 'address_data']);
return new Response($jsonContent,200,array(
'Content-Type' => 'application/force-download','Content-Disposition' => 'attachment; filename="export.xml"'
));
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。