我的问题是我的HTTP服务器需要发送一个长字符串作为对AJAX POST请求的响应。浏览器(Google Chrome)不会收到整个有效负载。由于某种原因,它收到的字符数少于50个字符,并且在单词或其他内容中随机剪切响应消息。响应消息包含字母,数字,空格和这些符号/字符:;?/ÄÖÜäöüß
;没有CR也没有LF。
如何才能将整个字符串传递给客户?
经过更多测试后,我发现问题是像äöü
这样的字符编码。除了避免使用这些角色之外,我还没有解决方案。
示例回复:
HTTP/1.1 200 OK
Content-Type: text/plain
Access-Control-Allow-Origin: *
Connection: Keep-Alive
Content-Length: 2616
... here the long string of 2616 characters ...
的Ajax:
var http = new XMLHttpRequest();
http.open("POST", host, true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.onreadystatechange = function()
{
that.status = http.status;
if (http.readyState == 4)
{
if (http.responseText.length > 1000)
alert(http.responseText.length);
that.result = http.responseText.trim();
if (replyHandler != null)
replyHandler(that);
}
}
http.send(that.toString());