将对象导出为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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...