微信小程序wx.request中post請求時data中參數不能傳到後臺

當使用POST方式請求時,後端無法獲取data中的數據,

將:

'content-type': 'application/json'

修改爲:

 'content-type': 'application/x-www-form-urlencoded', 

========================

常見的表單數據提交方式有如下:

  • application/x-www-form-urlencoded
  • application/json
  • multipart/form-data
  • text/xml

(1)application/x-www-form-urlencoded

最常見的 POST 提交數據的方式。瀏覽器的原生 form 表單,如果不設置 enctype 屬性,那麼最終就會以 application/x-www-form-urlencoded 方式提交數據。

首先,Content-Type 被指定爲 application/x-www-form-urlencoded;其次,提交的數據按照 key1=val1&key2=val2 的方式進行編碼,key 和 val 都進行了 URL 轉碼。大部分服務端語言都對這種方式有很好的支持。

(2)application/json

這個 Content-Type 作爲響應頭大家肯定不陌生。實際上,現在越來越多的人把它作爲請求頭,用來告訴服務端消息主體是序列化後的 JSON 字符串。由於 JSON 規範的流行,除了低版本 IE 之外的各大瀏覽器都原生支持 JSON.stringify,服務端語言也都有處理 JSON 的函數,使用 JSON 不會遇上什麼麻煩。

JSON 格式支持比鍵值對複雜得多的結構化數據。
Google 的 AngularJS 中的 Ajax 功能,默認就是提交 JSON 字符串。

(3)multipart/form-data

我們使用表單上傳文件時,必須讓 form 的 enctyped 等於這個值。
消息主體裏按照字段個數又分爲多個結構類似的部分,每部分都是以 –boundary 開始,緊接着內容描述信息,然後是回車,最後是字段具體內容(文本或二進制)。如果傳輸的是文件,還要包含文件名和文件類型信息。消息主體最後以 –boundary– 標示結束。

(4)text/xml

XML-RPC是一種使用 HTTP 作爲傳輸協議,XML 作爲編碼方式的遠程調用規範
XML-RPC 協議簡單、功能夠用,各種語言的實現都有。它的使用也很廣泛,如 WordPress 的 XML-RPC Api,搜索引擎的 ping 服務等等。
 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章