最近開始開發小程序,遇到許多小問題,直奔主題。jquery
wx.request()是微信封裝的ajax請求方法,也是小程序中ajax惟一的一個方法,被放在了API文檔的第一個位置,的確使用率是最高的。ajax
可是wx.request()並不是像jquery中的$.ajax()同樣,它還須要開發者在具體狀況中作一些調整。小程序
在直接發送POST請求時,請求成功,能夠觸發success回調,可是請求到的數據爲空。這其中的問題出在https請求的header上。(上圖爲header未設置時的狀況)微信
當把請求header的content-type設置爲application/x-www-form-urlencoded後,數據就能正常請求到了。app
請求數據內容正確post
這種content-type爲application/x-www-form-urlencoded時,數據會轉換爲query string形式:測試
這種跟在url後的形式,數據長度受限。url
默認狀態下則是這種形式:設計
可見,修改header的確請求到了數據,可是這種方法徹底違背了header的理念,get請求才應該將數據掛在url後面,而post請求所發送的數據會有可能超出query string形式的長度限制。3d
網上有說content-type寫成小寫時post請求能夠成功,可是本人測試無效。
感受這應該是一個設計缺陷,好在小程序都很簡單,通常不會有須要傳遞特別多參數的請求。
若是有其餘解決方法或者緣由分析歡迎指點。