前端遇坑记录(三)——axios请求的参数自动拼接到url后面

本文记录了一次使用Axios库发送HTTP请求时遇到的问题及解决过程。作者在尝试通过Axios传递参数时遇到了困难,经过查找文档发现使用data而非params可以解决参数附加到URL后的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


遇坑如题,这东西搞了我大半天。google 百度 StackOverflow 一通找,就是搞不定。

我秉承一个原则,问题在网上线索寥寥,要么就是问题难+小众,没几个人分享。

要么就是问题太简单,没人会问。


我相信我这个是后者。


所以,我最后才想到去看axios的文档...发现它传参有两种方式,一种是params,一种是data,

而params会默认把 要传的参数添加到url后面。。。


OK,用data,问题解决。

### 如何在前端使用 Axios 处理流式响应 为了实现前端流式响应处理,可以利用 `axios` 发起 HTTP 请求并指定 `responseType` 为 `'stream'`。这样做的目的是让服务器能够逐步向客户端传输数据而不是一次性全部发送完毕。 当采用这种方式,接收到的是 Node.js 的可读流(Readable Stream),允许监听特定事件如 `data` 和 `end` 来分片处理传入的信息[^1]: ```javascript const axios = require('axios'); // 创建 GET 请求以获取 PDF 文件作为流形式 axios({ method: 'get', url: '/example.pdf', // 替换为目标资源的实际 URL responseType: 'stream' }).then((response) => { let chunks = []; response.data.on('data', (chunk) => { console.log(`Received ${chunk.length} bytes of data.`); // 将每一片数据存储起来以便后续操作 chunks.push(chunk); }); response.data.on('end', () => { console.log('All parts have been received.'); // 此处可以根据需求拼接完整的文件或其他业务逻辑 const completeData = Buffer.concat(chunks); // 假设这里是要保存下载下来的PDF文档到本地磁盘上 fs.writeFileSync('./downloaded_example.pdf', completeData); }); }); ``` 上述代码展示了如何定义一个异步函数用于发起带有适当配置选项的请求,并注册两个主要事件处理器——一个是用来累积来自服务端的数据片段;另一个则是在整个传输过程结束后执行清理工作或进一步的操作。 值得注意的是,在实际项目开发过程中可能还需要考虑错误处理机制以及更复杂的场景下对于流媒体类型的特殊支持等问题[^3]。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值