Ajax与C ++ http服务器断开连接

我已经使自己成为一个简单的C ++应用程序,通过HTTPstream式传输数据。 当我在浏览器中打开服务器IP和端口时,我可以在浏览器窗口中看到该stream。 但是,从浏览器到C ++服务器的任何XHR请求都会在接收到标题后自动从客户端closures。 使用TELNET或PHP甚至没有任何脚本的浏览器给我的stream数据没有问题。 将Ajax连接到生成虚拟stream的PHP脚本也起作用。

什么可能导致这个问题? 可能是由第一个字节发送为'\ 0'? 或者可能是由于端口不是80而造成的?

C ++服务器和PHP脚本都在同一台Debian Linux机器上运行。 JS脚本已经在多种浏览器上进行过testing,包括Opera,Mozzila Firefox和Chrome。

服务器发送这些标题:

write(*con, "HTTP/1.1 200 OK\n",16); write(*con, "X-Powered-By: Darker\n",21); write(*con, "Pragma: no-cache\n",17); write(*con, "Content-Type: text/plain; charset=\"utf-8\"\n",42); write(*con, "Connection: keep-alive\n",23); 

好的,在Wireshark和Opera DragonFly的帮助下,我分离了几个问题:

  • HTTPRequest中的“responseText”总是“”(一个空string),虽然在Wireshark中我可以很容易地看到正在接收的数据。
  • 即使stream没有从服务器端结束,“readyState”在接收到响应时总是为4。

您应该指出内容长度标题,以字节表示您的流的确切大小。 另外,出于好奇,你是否流式纯文本(如你的内容类型所示)? 如果是,没有内容长度可能是问题,因为\r\n\r\n在HTTP中有意义