微信小程序發送請求從後臺返回的數據不是json格式的問題

emmmmm,這裏有一個前提。數據已經在後臺進行了json.encode處理。
不得不說這是一個很奇怪的現象。我遇到的情況是這樣的。在模擬器中數據是json格式無誤,但是在手機數據卻是字符串格式。然後我單純的以爲是數據格式問題,在前臺我處理了一遍

	  var ph = new postHelper(wx, 'login.php');
      ph._post({
          user_id: user_id
      }).then(res => {
          console.log(res.data);
          if (typeof (res.data) == 'string') {
              res.data = JSON.parse(res.data);
          }
      }, err => {
          console.log(err);
      });

然後竟然報錯了。實在是搞不懂爲什麼會報錯。然後用了很多辦法發現都木有用,我就把這個字符串輸出了一遍。
然後打印結果竟然是這樣的在這裏插入圖片描述

驚了,爲什麼最前面有個空格。然後我問後臺,後臺也不清楚。因爲後臺是用一套模板寫的接口,其他接口返回的數據就是正常的json格式,但是這個接口就返回了這個帶一個空格的字符串(手機端),但是在模擬器上卻是正常的。
百思不得其解的我去百度了,發現這是一個叫做bom頭的東西。so?似乎不是我的問題,我這裏只做解決。其他的問題就讓後臺處理去吧。

我這裏直接使用了trim函數去除空格,不知道處理方法夠不夠嚴謹。如果大家有更好的方法,希望可以分享一下。

          if (typeof (res.data) == 'string') {
              res.data = JSON.parse(res.data.trim());
          }

ps:爲了能在手機端和模擬器都能正常運行,也是花了小半天才解決這個問題。(手動笑哭)

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