1. 微信小程序不支持cookie
1. 使用Reids存儲session
2. 使用3rd_session建立會話關系
2. 微信小程序post請求,服務端獲取不到參數
1. 需要把Content-type改成‘application/x-www-form-urlencoded’才可以正常獲取
2. 修改Content-type后,請求參數不會自動序列化,需要使用JSON.stringify轉化字符串才可以正常請求
客戶端
wx.request({ url: app.requestUrl("Index/answer"), method: 'POST', data: { answer: JSON.stringify(needData), }, header: { "content-type": "application/x-www-form-urlencoded" }, dataType: "json", success: function(res) { } });
服務端
public function answer(){ $answer=I('post.answer'); $answer=htmlspecialchars_decode($answer); $answer=json_decode($answer); }
3. 微信小程序wx.request會自動對響應數據執行JSON.parse,JSON.parse執行失敗不會拋出錯誤或警告(php文件為BOM編碼時,響應數據會帶上編碼符。因為wx.request沒有做trim處理,所以JSON.parse會執行失敗,返回json字符串!該問題很難追蹤,因此糾結了一天)
4. 有些手機不支持Object.assign方法,如果使用了該方法會出現莫名其妙的報錯(並不會提示Object.assign is not function,而是導致調用了Object.assign方法的方法不能被調用)!
解決方法:直接寫一個合並對象的方法!
function assignObject(o, n) { for (var p in n) { if (n.hasOwnProperty(p) && (!o.hasOwnProperty(p))) o[p] = n[p]; } }
5. 不支持在對象使用解構表達式
var arr=[1,2,3,4,5]; var obj={ node:123, name:"huang" }; var newarr=[...arr,6,7,8]; // 可以解析 var newobj={...obj,age:12}; // 無法解析,報錯
6. 服務器使用https協議時,外鏈也需要使用https協議,否則ios系統不支持(android是支持的)
解決方法: 把外鏈的http協議轉換成https協議(外鏈需要支持https協議)
7. 自己寫的遮罩層無法遮蓋 textarea組件placeholder
解決方法:彈出遮罩層的時候把textarea組件隱藏,關閉遮罩后重新顯示textarea組件
8. picker-view組件無法滾動(當picker-view處於display:none狀態,去修改picker-view的value會導致組件卡主無法滾動)
解決方法:修改picker-view組件的value屬性的前picker-view必須處於正常(display:block)狀態