微信小程序中wx.request傳參問題,參數json格式


初用swagger文檔的接口,對於一些參數說明有些不清楚,關鍵詞如下:

1.Data type :string

2.parameter concent type:application/json

嘗試1:

 1 formSubmit:function(e){
 2     console.log(typeof(this.data.idCard));               //查看當前輸入身份證號的類型
 3     var idCard = JSON.stringify(this.data.idCard);       //想將字符串轉成json對象
 4     console.log(typeof (this.data.idCard));              //查看是否轉換成功
 5     wx.request({
 6       url: "某接口地址",
 7       method: "get",
 8       data: {
 9         "msg":this.data.idCard      
10       },
11       header: {
12         "Content-Type":"application/json;charset=UTF-8"
13       },
14       success: function (res) {
15         console.log(res);
16         },
17     })
18       },

       結果報錯,返回碼500,上網查資料,可能有兩個原因:內部服務器錯誤(后台測試了沒有錯),和我傳參格式錯了。果然,字符串並沒有轉換成功。

對於JSON.stringify正確用法應該是:

      JSON.stringify() 方法用於將 JavaScript 值(通常為對象和數組)轉換為 JSON 字符串。所以字符串在此轉換不了。

      那么我們換一個:JSON.parse() 方法用於將一個 JSON 字符串轉換為對象。同樣嘗試也不行,因為這個字符串並不是json字符串。

      正確用法請移步:https://www.cnblogs.com/xmjs/p/12404303.html

      求助同學:得把它轉成一個json對象。於是我又在網上搜索了一些方法,都沒成功。

其中有我在看書的時候看到的eval函數,具體方法如下:

  var json = eval('(' + str + ')');   報錯eval函數不存在?(存疑)

 

嘗試2:決定手動改json格式 

 formSubmit:function(e){
    wx.request({
      url: "某接口地址",
      method: "get",
      data: {
        "msg":{
          "idCard": this.data.idCard,
        }
      },
      header: {
        "Content-Type":"application/json;charset=UTF-8"
      },
      success: function (res) {
        console.log(res.data);
        },
    })
      },

      成功調用接口,得到數據!

        data type在這里還沒有用到,用法請移步:https://www.cnblogs.com/xmjs/p/12404303.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM