前端使用SSE 报错net::ERR_HTTP2_PROTOCOL_ERROR 200
时间: 2023-11-04 14:58:31 浏览: 67
这个错误可能是由于您的服务端不支持HTTP/2协议,而您的前端代码使用了SSE (Server-Sent Events) 来与服务端通信。您可以尝试升级您的服务端,使其支持HTTP/2协议,或者将您的前端代码改为使用其他协议来实现与服务端的通信。另外,您也可以尝试查看服务端的日志,看是否有相关的错误信息可以提供更多的帮助。
相关问题
前端在https的情况下使用SSE报错net::ERR_HTTP2_PROTOCOL_ERROR 200
这个错误可能是由于您的服务端不支持HTTP/2协议,而您的前端代码使用了SSE (Server-Sent Events) 来与服务端通信,并且您的网站启用了HTTP/2协议。在HTTP/2协议中,SSE的请求需要使用HTTP/2的流式传输,而您的服务端不支持这种方式,因此会出现错误。
您可以尝试升级您的服务端,使其支持HTTP/2协议,并且支持流式传输,或者将您的前端代码改为使用其他协议来实现与服务端的通信,例如WebSocket或者Long Polling。另外,您也可以尝试查看服务端的日志,看是否有相关的错误信息可以提供更多的帮助。
前端使用SSE 事件数据被截断,报错net::ERR_HTTP2_PROTOCOL_ERROR 200
如果前端使用 SSE,但是事件数据被截断并且报错 `net::ERR_HTTP2_PROTOCOL_ERROR 200`,这可能是因为浏览器在使用 HTTP/2 协议时出现了错误。可以尝试以下方法解决问题:
1. 使用 HTTP/1.1 协议:在前端代码中,将 SSE 的 URL 修改为使用 HTTP/1.1 协议,例如:
```
const eventSource = new EventSource('http://example.com/sse', { withCredentials: true, https: false });
```
2. 调整缓冲区大小:在前端代码中,将事件数据的缓冲区大小调整为较大值,例如:
```
const eventSource = new EventSource('http://example.com/sse', { withCredentials: true, https: true });
eventSource.onmessage = (event) => {
const data = JSON.parse(event.data);
// 处理数据
};
eventSource.onerror = (event) => {
console.error(event);
// 连接错误,尝试重新连接
setTimeout(() => {
const newEventSource = new EventSource('http://example.com/sse', { withCredentials: true, https: true });
newEventSource.onmessage = eventSource.onmessage;
newEventSource.onerror = eventSource.onerror;
eventSource.close();
eventSource = newEventSource;
}, 1000);
};
```
尝试以上方法仍然无法解决问题,可以尝试升级浏览器版本或者使用其他浏览器。