当前位置:  开发笔记 > 前端 > 正文

Server Sent Events通过post方法传递参数

如何解决《ServerSentEvents通过post方法传递参数》经验,为你挑选了1个好方法。

我正在使用Html5 Server Sent Events.服务器端是Java Servlet.我有一个想要传递给服务器的json数组数据.

var source = new EventSource("../GetPointVal?id=100&jsondata=" + JSON.stringify(data));

如果数组大小很小,服务器端可以获取查询字符串.但是如果阵列大小很大.(可能超过数千个字符),服务器无法获取查询字符串.是否可以使用POST方法new EventSource(...)将json数组传递给服务器,以避免查询字符串长度限制?



1> Darren Cook..:

不,SSE标准不允许POST.

(没有任何技术原因,据我所知 - 我认为只是设计师从未看过用例:它不仅仅是大数据,而且如果你想做一个自定义认证方案,那么安全原因不要将密码放在GET数据中.)

XMLHttpRequest(即AJAX)确实允许POST,因此一个选项是返回旧的long-poll/comet方法.(我的书,带有HTML5 SSE的数据推送应用程序详细介绍了如何执行此操作.)

另一种方法是POST事先将所有数据存储在一个中HttpSession,然后调用SSE进程,该进程可以利用该会话数据.(SSE支持cookie,因此JSESSIONIDcookie应该可以正常工作.)

PS 标准没有明确说不能使用POST.但是,与之不同的XMLHttpRequest是,没有参数可以指定要使用的http方法,也无法指定要发布的数据.


"如果您想上传文件并获得完成服务器端处理的进度,"我认为只是设计师从未见过用例".
我的SSE用例的90%是POST.在服务器上创建某种资源需要时间来处理.
推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有