EventSource 使用什么 HTTP 方法打开连接?

What HTTP Method does EventSource use to open a connection?

虽然在其他问题中人们声称 EventSource 有很好的记录,但我发现它在某些情况下更隐含而不是明确。

我的理解是,当您在 JS 中初始化 EventSource 对象时,它会使用指定的 URI 打开与您的服务器的连接。

这个连接是使用GET发起的吗?

(不确定这是否构成第二个问题)是否可以use/force另一个HTTP方法(POST)?

使用EventSource接口时的请求方式为GET请求。您可以在传递给构造函数的 URL 中包含查询字符串,并在服务器上解析查询字符串。

const stream = "data: event stream\n\n";
const blob = new Blob([stream], {type:"text/event-stream"});
const blobURL = URL.createObjectURL(blob);
const es = new EventSource(blobURL);
es.onmessage = e => {
   console.log(e.data);
}
es.onerror = e => {
   es.close();
}