


Explication détaillée et exemples de l'applet WeChat wx.request (méthode d'appel d'interface)
Applet WeChat wx.request ---- Méthode d'appel d'interface
Récemment, j'ai développé une version applet WeChat du système de gestion des tâches. J'ai rencontré quelques problèmes lors de l'envoi d'interfaces au backend Java.
Interface officielle
L'interface officielle s'appelle wx.request et la méthode de requête est relativement simple. Voici un exemple de requête donné sur le site officiel.
wx.request({ url: 'test.php', //仅为示例,并非真实的接口地址 data: { x: '' , y: '' }, header: { 'content-type': 'application/json' }, success: function(res) { console.log(res.data) } })
Problèmes
Le type de contenu dans l'en-tête de la requête wx.request est par défaut application/json. Si nous voulons modifier la méthode, par exemple en utilisant "application/x-www-form-urlencoded", nous constaterons que l'application/json par défaut. n'est pas remplacé dans les informations d'en-tête de la requête.Au lieu de cela, cette méthode a été ajoutée.De plus, lors d'une requête avec jquery.ajax, même si la méthode application/json est utilisée pour la requête, le format de données obtenu est différent. est utilisée, ajax convertira les données de la demande sous la forme &name1=value1&name2 =value2, cela posera des problèmes lors de l'analyse des données de la demande en fonction du type de contenu. Je ne sais pas si WeChat fait cela intentionnellement ou s'il s'agit simplement d'un bug. Bref, cela m'a causé des ennuis inutiles.
L'applet WeChat envoie des requêtes https. Vous pouvez utiliser http lors du débogage local. Si vous vérifiez la méthode de requête et le nom de domaine lors du test sur un téléphone mobile, si cela est illégal, l'erreur suivante sera signalée :
Afin de faciliter la requête, nous pouvons faire une simple encapsulation de wx.request, ce qui sera beaucoup plus pratique lorsque nous l'appellerons à nouveau. Le code est le suivant :
var app = getApp(); function request(url,postData,doSuccess,doFail,doComplete){ var host = getApp().conf.host; wx.request({ url: host+url, data:postData, method: 'POST', success: function(res){ if(typeof doSuccess == "function"){ doSuccess(res); } }, fail: function() { if(typeof doFail == "function"){ doFail(); } }, complete: function() { if(typeof doComplete == "function"){ doComplete(); } } }); } } module.exports.request = request;
Si une interface est fréquemment utilisée à différents endroits, j'ai initialement pensé à écrire une fonction, puis à l'exposer pour d'autres appels js. Cependant, j'ai découvert plus tard que la définition de async dans wx.request n'est pas valide et ne peut envoyer que des requêtes asynchrones. Je veux écrire une fonction. Il est plus difficile de renvoyer les données obtenues en appelant l'interface.
Merci d'avoir lu, j'espère que cela aidera tout le monde, et merci pour votre soutien à ce site !
Pour des explications plus détaillées et des exemples d'articles liés à l'applet WeChat wx.request (méthode d'appel d'interface), veuillez faire attention au site Web PHP chinois !

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds



