AJAX与C HTTP服务器断开连接

Ajax disconnects from C++ http server

本文关键字:断开 连接 服务器 HTTP AJAX      更新时间:2023-10-16

我已经使自己成为一个简单的C 应用程序,该应用程序通过HTTP流式传输数据。当我在浏览器中打开服务器IP和端口时,我可以在浏览器窗口中看到流。但是,从浏览器到C 服务器提出的任何XHR请求将在接收标头后立即从客户端自动关闭。使用telnet或php甚至没有任何脚本的浏览器,都会给我流式数据而没有问题。将AJAX连接到生成虚拟流也有效的PHP脚本。

什么可能导致这个问题?可能是由第一个字节发送的是' 0'引起的吗?或者可能是由使用的端口不为80的?

引起的

C 服务器和PHP脚本都在同一台Debian Linux计算机上运行。JS脚本已在多个浏览器中进行了测试,包括Opera,Mozzila Firefox和Chrome。

服务器发送theese标题:

write(*con, "HTTP/1.1 200 OKn",16);
write(*con, "X-Powered-By: Darkern",21);
write(*con, "Pragma: no-cachen",17);
write(*con, "Content-Type: text/plain; charset="utf-8"n",42);
write(*con, "Connection: keep-aliven",23);

好吧,所以在Wireshark和Opera Dragonfly的帮助下,我已经分离了几个问题:

  • httprequest中的" ResponseText"始终是"(一个空字符串),尽管在Wireshark中,我可以轻松地看到正确接收的数据。
  • " ReadyState"在接收响应时始终为4

您应指示内容长度的标头,以指示流中流的确切大小。另外,出于好奇心,您是否正在流纯文本(如您的内容类型中所示)吗?如果是,没有内容长度可能是问题,因为rnrn在HTTP

中具有含义