小程序
小游戏
企业微信
微信支付
扫描小程序码分享
代码片中中包含了简单的返回大数据后端( node_server.js)。这个服务会返回 1w 个a字符 ( { a: 'aaaaaa...' } ) 的 json 对象。
page/index 的onLoad 请求了这个服务,从 console log中可以看到这个完整的JSON数据在 onChunkReceived 回调中被截断返回了, 麻烦修复下,谢谢
启动返回大数据的server: node node_server.js
1 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
解决了,这个问题需要遵循 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信息(通常可以直接忽略)。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
解决了,这个问题需要遵循 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信息(通常可以直接忽略)。