










在開發(fā)微信小程智能拍照功能時,需要使用上傳照片的功能,上傳照片使用微信小程序自帶的API實現(xiàn),接口為:wx.uploadFile
在使用wx.uploadFile調(diào)用成功后返回的信息時出現(xiàn)了異常,提示undefined.
仔細看了一下文檔,是wx.uploadFile不同wx.request接口會對返回數(shù)據(jù)進行進行 JSON.parse處理導致的問題。
wx.request接口對返回的請求信息自動做JSON.parse處理,但wx.uploadFile就不會,而大部分接口都會采用規(guī)范化開發(fā),這個鵝廠的程序員沒統(tǒng)一規(guī)范倒是有點意外。
我們先來對比一下對返回數(shù)據(jù)的不同。
服務端是采用PHP語言處理,如下代碼:
$login_info['user_zt']="200"; $login_info['user_info']="制作完成"; echo json_encode($login_info);exit();
在微信小程序端直接console.log(res.data),得出結(jié)果:
這里如果使用對象方式操作會提示undefined的異常。
所以我們要加個JSON.parse去處理,代碼如下:
var reinfo=JSON.parse(res.data); console.log(reinfo.user_zt);
加上了JSON.parse后,直接用對象操作方法就不會出現(xiàn)提示undefined的異常了。
微信小程序的wx.request接口是默認對返回數(shù)據(jù)進行JSON.parse處理了的,但wx.uploadFile接口返回數(shù)據(jù)就不處理,不知為什么要做兩個不同規(guī)范,這樣很容易開發(fā)者對數(shù)據(jù)處理造成誤解。
最后看一下實現(xiàn)后的程序效果圖,是做小程序拍照功能的:
拍照小程序正在開發(fā)中,大家可以進入小程序看開發(fā)后的效果: