出现 errMsg: "request:fail response data convert to utf8 fail"
wx.request({
url: "https://www.example.com/api",
data: "post data string",
method: 'POST',
header: {
"content-type": "text/plain"
},
success: function (res) {
console.log(["success", res]);
},
fail: function (res) {
console.log(["failed", res])
},
complete: function () {
// complete
console.log("complete");
}
});
开发工具 和 安卓真机 都正常,iPhone上报错,感觉是当成json数据解析。
实际上返回的是应该是图片二进制数据, 尝试请求时增加 dataType: "text" 无效, 增加 header:{"accept": "image/*"} 也无效。
希望尽快修复。
有对应的链接不
@Special 或者让 dataType 支持 "binary" "application/octet-stream" 之类的?
@Special 返回的是图片二进制数据,的确不是有效的UTF8字符串
于是iPhone的微信上我没办法获取这些响应的原始数据。(对方 HTTP/1.1 200 OK 的)
其实我觉得不管如何,wx.request需要有获取返回的Header,以及原始响应信息的方法
因为有些接口需要客户端这边对原始信息进行校验的,或者用解密算法处理原始二进制数据
自动进行 JSON.parse 只能作为一种满足普遍需求的辅助行为
@韬々
wx.request文档里说:dataType默认为 json。如果设置了 dataType 为 json,则会尝试对响应的数据做一次 JSON.parse
可是没有说明dataType支持哪些,我即使设置为text 它也报响应UTF8错误
另外我不是要下载图片,服务端接口也不是我写的,总之没法拿到请求结果了。
安卓和开发工具上都正常,说明在iOS上实现有bug
如果需要下载图片回显,可以考虑接口返回url,然后使用image组件显示。或者直接使用wx.downloadFile接口下载文件