1.1 安装库 event-source-polyfill (不支持post)
npm install event-source-polyfill
1.2 代码实现
import { EventSourcePolyfill } from 'event-source-polyfill';
const sse = new EventSourcePolyfill('https://api.xxx.com/sse', {
headers: { 'Authorization': 'Bearer your_token' },
withCredentials: true
});
sse.onmessage = (event) => {
console.log('Received:', event.data);
};
sse.close();

2.1 安装库 @microsoft/fetch-event-source (支持get和post)
npm install @microsoft/fetch-event-source
2.2 代码实现
import { fetchEventSource } from '@microsoft/fetch-event-source';
const sseInit = () => {
fetchEventSource('/dev-api/xxxx/sse', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
"request_id": "1",
"content": "测试",
}),
onopen(response) {
if (response.ok) return;
throw new Error('连接失败');
},
onmessage(event) {
console.log('收到数据:', event.data);
},
onclose() {
console.log('连接终止');
},
onerror(err) {
console.error('错误:', err);
throw err;
}
})
}