前端处理后台返回的流数据

实际工作中,常常会遇到如预览PDF、下载Excel之类的需求。通常处理方式有:
1、后端返回一个文件在服务器的URL,前端直接使用就行。
2、后端返回流数据。如图
在这里插入图片描述
前端如何处理?
1、接口请求的时候一定要加responseType: 'blob',否则生产的文件会是空白(PDF)
2、代码实现

       const binaryData = []
        binaryData.push(res)// res 后台返回的流数据
        this.pdfUrl = window.URL.createObjectURL(new Blob(binaryData, { type: 'application/pdf' }))
        window.open(this.pdfUrl)

参考:

前端处理后台返回的富文本格式数据时,通常需要考虑以下几个方面: 1. **数据解析**: 后台返回的富文本数据通常是HTML格式的字符串。前端需要将这个字符串解析并渲染成可视化的内容。可以使用浏览器的DOM操作方法或者第三方库(如jQuery)来实现。 2. **安全性**: 富文本数据中可能包含恶意脚本(XSS攻击)。因此,在渲染之前,必须对数据进行消毒处理。可以使用库如DOMPurify来清理HTML内容,确保安全。 3. **样式和交互**: 富文本数据通常包含样式和交互元素。前端需要确保这些样式和交互能够正确应用和执行。可以使用CSS来控制样式,使用JavaScript来处理交互。 4. **响应式设计**: 确保富文本内容在不同设备上都能良好显示。可以使用响应式设计的原则,通过媒体查询和灵活的布局来实现。 以下是一个简单的示例,展示了如何在React中处理和渲染后台返回的富文本数据: ```jsx import React, { useEffect, useState } from 'react'; import DOMPurify from 'dompurify'; const RichTextComponent = () => { const [content, setContent] = useState(''); useEffect(() => { // 模拟从后台获取富文本数据 fetch('/api/getRichText') .then(response => response.text()) .then(data => { // 清理HTML内容 const sanitizedData = DOMPurify.sanitize(data); setContent(sanitizedData); }) .catch(error => console.error('Error fetching rich text:', error)); }, []); return ( <div dangerouslySetInnerHTML={{ __html: content }} /> ); }; export default RichTextComponent; ``` 在这个示例中,我们使用`fetch`从后台获取富文本数据,然后使用`DOMPurify`对数据进行清理,最后通过`dangerouslySetInnerHTML`将清理后的HTML内容渲染到页面上。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值