当前位置: 首页 > 面试题库 >

服务器发送事件通过post方法传递参数

卜方伟
2023-03-14
问题内容

我正在使用Html5服务器发送事件。服务器端是Java Servlet。我有一个要传递给服务器的json数组数据。

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

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


问题答案:

不可以,SSE标准不允许POST。

(出于技术原因,据我所知-我认为只是设计人员从未见过用例:不仅是大数据,而且如果要执行自定义身份验证方案,则有安全原因,不要将密码放入GET数据中。)

XMLHttpRequest(即AJAX)确实允许POST,因此一种选择是返回到较早的长轮询/彗星方法。(我的书《带有HTML5
SSE的数据推送应用程序》
详细介绍了如何执行此操作。)

另一种方法是POST预先处理所有数据,并将其存储在中HttpSession,然后调用SSE流程,该流程可以利用该会话数据。(SSE确实支持cookie,因此JSESSIONIDcookie应该可以正常工作。)

PS该标准没有明确规定不能使用POST。但是与众不同的XMLHttpRequest是,没有参数指定要使用的http方法,也没有方法指定要发布的数据



 类似资料:
  • 问题内容: 我使用window.open方法打开了带有参数的新站点,我必须通过post方法来传递它。我找到了解决方案,但不幸的是它不起作用。这是我的代码: 接下来,我创建数组: 并通过以下方式调用函数: 但是,当我单击此按钮时,站点test.asp为空(当然,我尝试获取传递值- )。 我怎么解决这个问题,为什么我不能获得通过值? 问题答案: 无需将表单写入新窗口(要用HTML代码中的值进行编码就很

  • 问题内容: Java-通过POST方法发送HTTP参数? 问题答案: 在GET请求中,参数作为URL的一部分发送。 在POST请求中,将参数作为请求的正文发送到标头之后。 要使用进行POST,你需要在打开连接后将参数写入连接。 这段代码可以帮助你入门:

  • 概述 客户端代码 概述 建立连接 open事件 message事件 error事件 自定义事件 close方法 数据格式 概述 data:数据栏 id:数据标识符 event栏:自定义信息类型 retry:最大间隔时间 服务器代码 参考链接 概述 传统的网页都是浏览器向服务器“查询”数据,但是很多场合,最有效的方式是服务器向浏览器“发送”数据。比如,每当收到新的电子邮件,服务器就向浏览器发送一个“

  • 概述 客户端代码 概述 建立连接 open事件 message事件 error事件 自定义事件 close方法 数据格式 概述 data:数据栏 id:数据标识符 event栏:自定义信息类型 retry:最大间隔时间 服务器代码 参考链接 概述 传统的网页都是浏览器向服务器“查询”数据,但是很多场合,最有效的方式是服务器向浏览器“发送”数据。比如,每当收到新的电子邮件,服务器就向浏览器发送一个“

  • 问题内容: 没有参数 带参数 我想得到。我怎么才能得到它? 问题答案: 试试这个: 并在您的职能:

  • 问题内容: 我成功使用此代码通过方法发送 带有某些参数的请求 现在,我可能需要通过POST方法发送参数(即param1,param2,param3),因为它们很长。我在想为该方法添加一个额外的参数(即String httpMethod)。 我如何才能尽可能少地更改上面的代码,以便能够通过GET或发送参数POST? 我希望改变 至 本来可以解决问题的,但是参数仍然通过GET方法发送。 有没有什么方法