解决了,这个问题需要遵循 http chunk 返回协议,即 需要返回一个 块大小 然后是数据。 res.write(`${JSON.stringify(data).length.toString(16)}\r\n${JSON.stringify(data)}\r\n`); 由于这个块大小表示的是下一个块的大小,所以需要先返回一个 空 数据 告知下一个块大小,然后才能正常取到(如果第一个块大小很大的话) Chunked编码使用若干个Chunk串连而成,由一个标明长度为0的chunk标示结束。每个Chunk分为头部和正文两部分,头部内容指定下一段正文的字符总数(十六进制的数字)和数量单位(一般不写),正文部分就是指定长度的实际内容,两部分之间用回车换行(CRLF)隔开。在最后一个长度为0的Chunk中的内容是称为footer的内容,是一些附加的Header信息(通常可以直接忽略)。
request enableChunked onChunkReceived 返回数据截断了?代码片中中包含了简单的返回大数据后端( node_server.js)。这个服务会返回 1w 个a字符 ( { a: 'aaaaaa...' } ) 的 json 对象。 page/index 的onLoad 请求了这个服务,从 console log中可以看到这个完整的JSON数据在 onChunkReceived 回调中被截断返回了, 麻烦修复下,谢谢 启动返回大数据的server: node node_server.js [图片]
10-11解决了,这个问题需要遵循 http chunk 返回协议,即 需要返回一个 块大小 然后是数据。 res.write(`${JSON.stringify(data).length.toString(16)}\r\n${JSON.stringify(data)}\r\n`); 由于这个块大小表示的是下一个块的大小,所以需要先返回一个 空 数据 告知下一个块大小,然后才能正常取到(如果第一个块大小很大的话) Chunked编码使用若干个Chunk串连而成,由一个标明长度为0的chunk标示结束。每个Chunk分为头部和正文两部分,头部内容指定下一段正文的字符总数(十六进制的数字)和数量单位(一般不写),正文部分就是指定长度的实际内容,两部分之间用回车换行(CRLF)隔开。在最后一个长度为0的Chunk中的内容是称为footer的内容,是一些附加的Header信息(通常可以直接忽略)。
reqeust onChunkReceived 数据被截断了代码片中中包含了简单的返回大数据后端( node_server.js)。这个服务会返回 1w 个a字符 ( { a: 'aaaaaa...' } ) 的 json 对象。 page/index 的onLoad 请求了这个服务,从 console log中可以看到这个完整的JSON数据在 onChunkReceived 回调中被截断返回了, 麻烦修复下,谢谢 启动返回大数据的server: node node_server.js [图片]
10-11