首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反向AJAX请求的预期HTTP响应到底是什么样子的?

反向AJAX请求的预期HTTP响应到底是什么样子的?
EN

Stack Overflow用户
提问于 2019-08-13 06:38:35
回答 1查看 41关注 0票数 0

我正在尝试实现一个简单的Web服务(运行在使用以太网屏的Arduino板上),它可以通过反向AJAX向订阅的客户机提供(推送)信息。该web服务托管一个网页,该网页显示连接到该服务器主板的(2D-LIDAR)传感器的信息。只要传感器输出发生变化(非常频繁且迅速),查看该页面的客户端就应该立即更新。对于这个应用程序,反向AJAX /AJAX推送似乎是一个选择,但是我正在努力让服务器部分正常工作。这是我前面提到的网页中的内容,用来“监听”更新:

代码语言:javascript
复制
var xhr = new XMLHttpRequest();
xhr.multipart = true;
xhr.open( 'GET', 'push', true) ;
xhr.onreadystatechange = function() {
  if (xhr.readyState == 4) {
    processEvents( window.JSON.parse( xhr.responseText ) );
  }
}
xhr.send( null );

我想让XmlHttpRequest永远运行,只要有一大块(JSON)数据从服务器端进来,就让它调用processEvents函数。但是,我不确定服务器响应,尤其是HTTP响应头应该是什么样子,才能使其按预期工作。每当我让服务器像这样发送HTTP响应头时

代码语言:javascript
复制
HTTP/1.1 200 OK\r\n
Connection: keep-alive\r\n
Content-Length: 100\r\n
Content-Type: text/json\r\n
\r\n

XmlHttpRequest在接收到恰好一个“块”数据后结束。我也尝试过不使用"Content-Length“头,但是"Content-Type: multipart/mixed;boundary=...”或者"Transfer-Encoding: chunked“,但这两种方法都没有触发processEvents,可能是因为浏览器正在等待响应完成,不管这意味着什么。

因此,我正在寻找这样的HTTP响应AJAX-Push请求的工作示例。HTTP响应通常需要什么样的外观才能被无限期运行的XmlHttpRequest接受,并在新数据到达时触发processEvents?

顺便说一句。我用Firefox64.0试过这些东西。

EN

回答 1

Stack Overflow用户

发布于 2019-08-13 08:58:06

如果你正在寻找一个低延迟的基于http的通信,你应该看看websockets。你的带有Post方法的xmlhttp将有大约50毫秒的高延迟,相信我,我以前试过开发一个基于彩虹颜色选择器的rgb控制器,同步和异步post方法对我来说都不能很好地工作,脚本只是等待响应。

现在具体回答你的问题,下载postman,这是一个软件,允许你模拟所有你想要的http方法请求和头。还提供了在许多语言中实现的代码,不要忘记f12 on chrome > network tab,这样您就可以检查或http请求的输出是如何处理的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57469098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档