超薄的php csrf失败了

问题描述 投票:0回答:1

我有一个控制器动作,使用league / csv包输出CSV文件。当我发布表单时,可以下载文件,但是如果再次发布帖子请求,我发现csrf令牌失败,这是正确的,因为csrf代码在每次请求后到期。在Slim框架PHP中下载文件后重定向页面的最佳方法是什么

     $csv = \League\Csv\Writer::createFromFileObject(new \SplTempFileObject());

    Data::where('user_id','=',$user_id)->get()->each(function($dat) use($csv) {
        $data = $dat->toArray();
        $data['link'] = $dat->getLink();
        $csv->insertOne($data);
    });
     $csv->output('data.csv');
php file csv slim-3
1个回答
0
投票

问题已解决。我发出了一个返回csrf令牌和csv文件内容的ajax请求。我使用下面的代码使用JavaScript下载文件

var uri = 'data:text/csv;charset=UTF-8,' + encodeURIComponent(csvdata);
                window.open(uri, 'data.csv');
© www.soinside.com 2019 - 2024. All rights reserved.