前提说一下,是在vue框架下进行的百度人脸识别接口的调用
vue项目,在reader.onload函数中拿不到this,无法将数值传递到全局
解决办法: 遇到这种问题的话,在reader.onload函数外层用 let that = this 来记录一下this,这样在里面使用that就可以拿到this了
在调百度的接口的时候遇到报错,信息为: " errorcode":222200,"errormsg":"request body should be json format"。
解决办法: 当时我的data 直接就是一个对象,只要将对象外面包裹一个中括号变成数组就可以了,如下
let data = {
image: tempImgData,
image\_type: 'BASE64',
}
变成如下
let data = [{
image: tempImgData,
image\_type: 'BASE64',
}]
参数格式调好了,再次调用接口,发现又报一个错: image check fail,错误码222203。这个问题是因为传入的参数中的base64格式的图片有图片头( data:image/jpg;base64)
解决办法: 用这个代码去掉图片头
base64Img.replace(/^data:image\/\w+;base64,/, "")
附上这个调取人脸识别的整个函数
// 拿到上传图片的信息<