如何发送长Ajax响应?

时间:2016-07-21 08:45:57

标签: javascript ajax http

我的问题是我的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());

0 个答案:

没有答案