使用POST方式的服务器发送事件

在Web开发中,服务器向客户端推送数据已经成为一种非常重要的技术。新的推送技术已经让传统的轮询和长轮询变的过时。EventSource是在本地用于接收服务器端推送数据的一个API,能够轻松地把服务器推送的数据显示到网页中。而且,使用EventSource API的时候,最令人喜欢的就是可以使用HTTP的GET方法。

然而,当用户单击网页上的按钮,此时如果想像服务器发送一些数据怎么办呢?要注意的是,触发事件后,不是请求,因此,HTTP GET方法是不太合适的。那么,我们可以使用POST方法,直接将数据发给服务器。但是,事实上,EventSource API并不支持POST和PUT这些方法,只支持HTTP的GET方法。因此,为了解决这个问题,我们需要寻找解决方法。

为了解决这个问题,Solovyov博士提出了一个解决方案。他建议在HTTP头信息中使用附加信息来说明请求的方法。这个附加信息是新的HTTP头“X-HTTP-Method-Override”。当一个POST请求包含该头时,服务器端会将其视为一个PUT请求或DELETE请求,这样就可以绕过EventSource API对请求方法的限制了。

总而言之,使用POST方式的服务器发送事件并不是一个困难的事情。我们只需要了解HTTP头信息,并使用新的HTTP头来绕过EventSource API对请求方法的限制即可。这样一来,我们就可以随心所欲地将数据发给服务器了。

详情参考

了解更多有趣的事情:https://blog.ds3783.com/