Heim  >  Artikel  >  WeChat-Applet  >  Analyse des WeChat-Applets wx.request

Analyse des WeChat-Applets wx.request

不言
不言Original
2018-06-23 09:28:301735Durchsuche

In diesem Artikel werden hauptsächlich die detaillierten Erklärungen und Beispiele des WeChat-Applets wx.request (Schnittstellenaufrufmethode) vorgestellt, bei dessen Verwendung jedoch Fehler auftreten können siehe

WeChat-Applet wx.request----Schnittstellenaufrufmethode

Kürzlich wurde eine WeChat-Applet-Version des Aufgabenverwaltungssystems entwickelt aufgetreten, als der Java-Hintergrund die Schnittstelle gesendet hat. Hier ist eine kurze Zusammenfassung.

Offizielle Schnittstelle

Die offizielle Schnittstelle heißt wx.request. Das Folgende ist ein Anfragebeispiel auf der offiziellen Website.

wx.request({
 url: 'test.php', //仅为示例,并非真实的接口地址
 data: {
   x: '' ,
   y: ''
 },
 header: {
   'content-type': 'application/json'
 },
 success: function(res) {
  console.log(res.data)
 }
})

Bestehende Probleme

Der Inhaltstyp im Header der wx.request-Anfrage ist standardmäßig application/json, wenn wir Wenn Sie eine andere Methode verwenden, z. B. „application/x-www-form-urlencoded“, werden Sie feststellen, dass die Anforderungsheaderinformationen nicht die Standardanwendung „application/json“ ersetzen, sondern diese Methode zusätzlich hinzufügen, selbst wenn Sie jquery verwenden .ajax zum Anfordern, das Gleiche Bei Verwendung der application/json-Methode zum Anfordern ist auch das Format der erhaltenen Daten unterschiedlich. Unabhängig davon, welche Anforderungsmethode verwendet wird, konvertiert Ajax die Anforderungsdaten in die Form &name1=value1&name2=value2. was beim Parsen der Anfragedaten basierend auf dem Inhaltstyp angezeigt wird. Frage: Ich weiß nicht, ob WeChat dies absichtlich tut oder ob es einfach ein Fehler ist. Kurz gesagt, es hat mir unnötigen Ärger bereitet.

Das WeChat-Applet sendet HTTP-Anfragen. Wenn Sie beim Testen auf einem Mobiltelefon HTTP verwenden, wird der folgende Fehler angezeigt berichtet:


Um die Anfrage zu erleichtern, können wir eine einfache Kapselung von wx.request vornehmen, was viel praktischer ist, wenn wir es erneut aufrufen. Der Code lautet wie folgt:

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;

Wenn eine Schnittstelle häufig an verschiedenen Stellen verwendet wird, dachte ich ursprünglich daran, eine Funktion zu schreiben und die Funktion dann verfügbar zu machen Für andere JS zum Aufrufen, aber später stellte ich fest, dass die in wx.request festgelegte Async-Einstellung ungültig ist und nur asynchrone Anforderungen senden kann. Wenn Sie also eine Funktion schreiben möchten, um die durch den Aufruf der Schnittstelle erhaltenen Daten zurückzugeben, ist dies schwierig implementieren.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Vom WeChat-Applet entwickelte Animationsschleifenanimation, um den Effekt schwebender Wolken zu erzielen

Einführung in das WeChat-Applet zur Formularkomponente

Verwendung von wx:for und wx:for-item im WeChat-Miniprogramm

Das obige ist der detaillierte Inhalt vonAnalyse des WeChat-Applets wx.request. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn