我的 Ajax 结果中的这个奇怪字符是啥

Posted

技术标签:

【中文标题】我的 Ajax 结果中的这个奇怪字符是啥【英文标题】:What are this Weird Character on my Ajax result我的 Ajax 结果中的这个奇怪字符是什么 【发布时间】:2022-01-11 08:14:06 【问题描述】:

我的 Ajax 结果中的奇怪字符是什么,开头为 138d,结尾为 0。如何禁用此功能?

138d


"feeds":["pubdate":"Sun, 28 Nov 2021 23:00:00 EST"]
0

【问题讨论】:

【参考方案1】:

您的 HTTP 客户端有问题。它不正确地从 HTTP 响应中提取了正文。


有三种方式可以发出 HTTP 响应结束的信号:

使用Content-Length 标头。 使用chunked 传输编码。 关闭套接字。

前两种方法允许在同一个连接上发生多个请求-响应交换,这比为每个请求创建一个新连接要高效得多。 (尤其是 HTTPS。)

Content-Length 标头使用起来非常简单,但在开始发送之前需要知道消息正文的大小。 chunked 传输编码没有这个限制。它允许服务器在其大小已知之前开始发送响应。

使用分块传输编码的 HTTP 响应可能如下所示:

HTTP/1.1 200 OK␍␊
Transfer-Encoding: chunked␍␊
Content-Type: application/json␍␊
␍␊
28␍␊
..............................␍␊
28␍␊
..............................␊␍␊
0␍␊

该响应的消息正文是

............................................................␊

返回您的 JSON 的响应显然使用了chunked 传输编码。无论您用来解析 HTTP 响应的任何内容都错误地返回了仍然分块的消息正文。这是一个错误。引用RFC2616,

所有 HTTP/1.1 应用程序必须能够接收和解码 “分块”传输编码

【讨论】:

非常感谢 ikegami。我试图在我的 apache 服务器中禁用 gzip,然后它就被修复了。感谢您的帮助。

以上是关于我的 Ajax 结果中的这个奇怪字符是啥的主要内容,如果未能解决你的问题,请参考以下文章

当我用“ñ”字符遍历字符串时出现奇怪的结果

色调中的奇怪符号

`std::find()` 用字符串产生奇怪的结果

在 SQL Server(查询分析器)中的查询结果中识别隐藏字符的最佳方法是啥?

处理产生奇怪结果的字节数组的字符串构造函数[重复]

从 xml 字符串获取结果集元素的正则表达式是啥? [复制]