我在PHP代码中下载了一个CSV文件,但它没有返回到我的Ext JS页面。我的代码如下:
Ext JS Code
Ext.getCmp('btnExport').on('click', function(button, event)
{
Ext.getCmp("frmReportQuotes").getForm().standardSubmit = true;
Ext.getCmp('frmReportQuotes').getEl().dom.method = 'POST';
Ext.getCmp('frmReportQuotes').getEl().dom.target = '_blank';
Ext.getCmp('frmReportQuotes').getForm().submit({
params: {
output: 'csv'
},
success: function(form, action){
alert('jjkjlkj');
},
failure: function(form, action){
alert('jjkjlkj');
}
});
});
PHP代码
if (!empty($strOutputType) && $strOutputType == 'csv')
{
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=data.csv");
header("Pragma: no-cache");
header("Expires: 0");
if (!empty($entRequestList))
{
$arrKeys = array();
foreach ($this->view->Data[0] as $key => $value)
$arrKeys[] = $key;
echo '"' . implode('","', $arrKeys) . '"' . "\n";
foreach ($this->view->Data as $entRow)
{
$strCSV = '"' . implode('","', $entRow) . '"';
$strCSV = preg_replace("[\n\r]", " ", $strCSV);
echo $strCSV . "\n";
}
}
die();
}
请帮助,以便它返回我的Ext JS文件。
答案 0 :(得分:0)
问题是如果你要返回一个CSV文件附件,你不能指望它由ajax请求处理程序处理,所以不要指望你的成功函数能够运行。
同样来自文档:
standardSubmit : Boolean
如果设置为true,则使用标准HTML表单提交而不是XHR (Ajax)样式表单提交。
这意味着不会进行js回调。