jquery ajax 返回文件
时间: 2023-12-21 07:05:00 浏览: 147
为了实现jquery ajax返回文件,我们可以使用js生成一个form,用这个form提交参数,并返回“流”类型的文件。具体步骤如下:
1.在html中添加一个下载按钮,并绑定一个点击事件:
```html
<button id="downloadBtn">下载文件</button>
```
2.在js中编写点击事件的处理函数,生成一个form,用这个form提交参数,并返回“流”类型的文件:
```javascript
$('#downloadBtn').click(function() {
// 创建一个form
var form = $('<form></form>').attr('action', '/download').attr('method', 'post');
// 添加参数
form.append($('<input></input>').attr('type', 'hidden').attr('name', 'param1').attr('value', 'value1'));
form.append($('<input></input>').attr('type', 'hidden').attr('name', 'param2').attr('value', 'value2'));
// 提交form
form.submit();
});
```
3.在后端服务器中,接收到请求后,生成一个文件流,将文件流返回给前端:
```python
@app.route('/download', methods=['POST'])
def download():
# 获取参数
param1 = request.form['param1']
param2 = request.form['param2']
# 生成文件流
file_stream = generate_file_stream(param1, param2)
# 返回文件流
response = make_response(file_stream)
response.headers['Content-Type'] = 'application/octet-stream'
response.headers['Content-Disposition'] = 'attachment; filename=file.txt'
return response
```
阅读全文