axios 接收响应格式为text/event-stream
时间: 2023-10-04 09:05:29 浏览: 1248
Error:in ./node-modules/axios/lib/platform/index.js
axios可以通过设置responseType为'text'来接收文本格式的响应,而对于event-stream格式的响应,可以设置responseType为'text/event-stream'。
例如:
```
axios.get('/stream', {
responseType: 'text/event-stream'
}).then(response => {
// 处理响应数据
}).catch(error => {
// 处理错误
});
```
需要注意的是,在处理event-stream响应时,需要使用EventSource对象来处理数据流。可以使用axios自带的cancelToken来取消请求:
```
const source = axios.CancelToken.source();
axios.get('/stream', {
responseType: 'text/event-stream',
cancelToken: source.token
}).then(response => {
const stream = new EventSource('/stream');
stream.onmessage = event => {
// 处理数据流
};
stream.onerror = error => {
// 处理错误
};
}).catch(error => {
// 处理取消请求
if (axios.isCancel(error)) {
console.log('请求已取消', error.message);
} else {
// 处理其他错误
}
});
// 取消请求
source.cancel('请求已取消');
```
阅读全文