gpt4 book ai didi

javascript - 如何使用 HTML SSE 传递 POST 参数?

转载 作者:搜寻专家 更新时间:2023-10-31 22:03:15 24 4
gpt4 key购买 nike

我这里有一段代码使用 HTML 5 SSE - EventSource 对象,它允许 php 脚本将更新推送到网页。但是,我也有兴趣将参数传递给脚本。我怎样才能做到这一点?

代码如下:

if(typeof(EventSource) !== "undefined")
{
var source = new EventSource("get_message.php");
source.onmessage=function(event)
{
document.getElementById("message-window").innerHTML+=event.data + "<br>";
};
}
else
{
document.getElementById("message-window").innerHTML="Sorry, your browser does not support server-sent events...";
}

我能想到的最接近的方法是使用 AJAX,如

$.post("get_message.php", {largest_id: 30}, function(data, status){ some function });

但是,我不确定如何为此编写 jQuery?

最佳答案

EventSource API 不支持 POST 方法,但这并不意味着您不能将 SSE 与 POST 一起使用。您只是不能使用 EventSource API。
但是,还有其他实现方式。一个例子是 sse.js它允许您指定有效载荷,如果需要,还可以指定 header 。 sse.js 应该是 EventSource 的直接替代品,例如:

var source = new SSE("get_message.php");
source.onmessage=function(event)
{
document.getElementById("message-window").innerHTML+=event.data + "<br>";
};

为了使用 POST 方法,您只需要指定一个有效负载,例如:

var source = new SSE("get_message.php", {payload: 'Hello World'});

而且,由于它是一个完全兼容的 polyfill,您可能可以这样做:

EventSource = SSE;
var source = new EventSource("get_message.php", {payload: 'Hello World'});
source.onmessage=function(event)
{
document.getElementById("message-window").innerHTML+=event.data + "<br>";
};

关于javascript - 如何使用 HTML SSE 传递 POST 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23825771/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com