原文:http://blog.csdn.net/walkingmanc/article/details/54237961
在微信小程序開發過程中,如果你完全按照官方文檔來,那么恭喜你,90%的可能性你會掉入大坑而且還難以爬起來,有時候明顯沒有任何問題但是結果就是不對。
今天就來給大家說一下客戶端發起post請求時的一個坑。
按照官方文檔,我們客戶端發起post請求的代碼如下:
t:function() {
wx.request({
url: 'https://www.meimichao.com/bee/uploadHandler',
data: {"city":"123"
},
method: 'POST', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
//header: {"Content-Type":"application/x-www-form-urlencoded"}, // 設置請求的 header
success: function(res){
console.log(JSON.stringify(res));
},
fail: function(res) {
console.log(JSON.stringify(res));
},
complete: function() {
// complete
}
})
},
但是你這么寫,無論如何在服務器端都是獲取不到參數city的值的,始終會報null。這時你只要將post請求改成get請求類型,馬上就可以獲取到city參數的值了,
客戶端改成:
t:function() {
wx.request({
url: 'https://www.meimichao.com/bee/uploadHandler',
data: {"city":"123"
},
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
//header: {"Content-Type":"application/x-www-form-urlencoded"}, // 設置請求的 header
success: function(res){
console.log(JSON.stringify(res));
},
fail: function(res) {
console.log(JSON.stringify(res));
},
complete: function() {
// complete
}
})
},
服務器端:
非常奇怪的是,我們只要在post請求中加上下面這個請求頭,服務器端馬上就可以獲取到city參數的值了。
header: {"Content-Type":"application/x-www-form-urlencoded"},
對此官方文檔是沒有任何說明的,只有在你跌入坑了以后你才知道。