我有以下AJAX调用,我用它从后端(运行Flask)获取Excel文件:
handleExport = (exportType) => {
var formData = new FormData();
formData.append("exportType", exportType);
$.ajax({
url: '/export',
data: formData,
contentType: false,
processData: false,
type: 'POST',
}).done((data) => {
console.log(data)
FileSaver.saveAs(data, data.name);
})
}
AJAX调用通过,但data
方法中的done
对象是一个字符串,而不是blob,这是我所期望的。对应于AJAX调用的烧瓶路线如下:
@app.route("/export", methods = ['POST'])
def export():
userid = session['userid']
export_type = request.form['exportType']
export = get_export(db, userid, export_type)
output = io.BytesIO()
writer = pd.ExcelWriter(output, engine='xlsxwriter')
export.to_excel(writer)
writer.save()
output.seek(0)
return send_file(output, attachment_filename = "Promotions_Export.xlsx", mimetype='application/vnd.ms-excel', as_attachment = True)