Cet article présente principalement comment résoudre l'exception de traitement wx.request pour JSON contenant u2028 dans l'applet WeChat. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer
Description du problèmeRécemment, pendant le processus de développement du mini-programme, j'ai rencontré un problème magique. L'API wx.request utilisée par l'applet pour lancer des requêtes réseau analysera le corps de la réponse au format JSON par défaut et renverra un objet JS.wx.request({ url: 'test.php', //仅为示例,并非真实的接口地址 data: { x: '', y: '' }, header: { 'content-type': 'application/json' // 默认值 }, success: function(res) { console.log(res.data) } })
est généralement de type Objet. res.data
caractères, l'interprétation échouera et la sortie \u2028
est le type de chaîne du corps de la réponse. res.data
{“test”:”这里有一个特殊字符:
"}
wx.request({ ... success: (res) => { console.log('APIFactory:run', '调试', { res }); }, });
, qui est analysé comme un séparateur de ligne. u2028
Ce caractère est compatible dans les chaînes JSON et peut être analysé normalement par
. JSON.parse
Mais s'il y a cette chaîne dans le code JS, cela provoquera une erreur de fonctionnement.
Les environnements d'exécution des scripts JS des trois terminaux sont différents :
Concernant le traitement des données du corps de la réponse, qu'il soit traité en JS Engine ou Native, WeChat ne divulgue pas le code source de le mini programme La situation est inconnue. Le traitement de wx.request
équivaut pour nous à une boîte noire, et le type de données de wx.request
peut avoir plusieurs valeurs. Si nous voulons offrir une meilleure robustesse en entreprise, nous avons également besoin d'une compatibilité avec le jugement. et code tolérant aux pannes lorsque res.data
est de type res.data
. Object/String
Explication des astuces pour les tableaux Array en JavaScript
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!