Die Debugging-App für echte Maschinen von Uniapp kann nicht auf die Schnittstelle zugreifen
Bei der Entwicklung mobiler Uniapp-Anwendungen stoßen wir häufig auf das Problem, dass die Debugging-App für echte Maschinen nicht auf die Schnittstelle zugreifen kann. Dieses Problem wird häufig durch domänenübergreifenden Zugriff verursacht. Hier besprechen wir, wie mit diesem Problem umgegangen werden kann.
Wenn das Problem auftritt, dass kein Zugriff auf die Schnittstelle möglich ist, müssen wir zunächst bestätigen, ob die Schnittstellenadresse korrekt ist. Es ist sehr wichtig zu bestätigen, dass die Schnittstellenadresse korrekt ist. Wir müssen die Schnittstellenadresse sorgfältig prüfen, um sicherzustellen, dass kein Problem vorliegt.
Wenn kein Problem mit der Schnittstellenadresse vorliegt, liegt das Problem wahrscheinlich domänenübergreifend vor. Es ist zu beachten, dass Browser aufgrund von Einschränkungen der Sicherheitsrichtlinien in der Regel keinen domänenübergreifenden Zugriff zulassen.
Der Standarddomänenname der Front-End-Seite lautet http://localhost:8080. Wenn der Domänenname der Back-End-Schnittstelle nicht unter diesem Domänennamen liegt, führt dies zu domänenübergreifenden Problemen. Wenn beispielsweise die Front-End-Seitenadresse http://localhost:8080/index.html und die Back-End-Schnittstellenadresse http://api.demo.com/getData lautet, treten dabei domänenübergreifende Probleme auf Zeit.
Um das domänenübergreifende Problem zu lösen, müssen wir das Backend so konfigurieren, dass der domänenübergreifende Front-End-Zugriff möglich ist. Sie können zur Konfiguration die domänenübergreifende Middleware des Back-End-Frameworks verwenden. Node.js kann beispielsweise das cors-Modul und Java die @CrossOrigin-Annotation des Spring MVC-Frameworks verwenden.
Nehmen Sie Node.js als Beispiel und installieren Sie das Cors-Modul:
npm install cors --save
Verwenden Sie das Cors-Modul:
const express = require('express') const cors = require('cors') const app = express() app.use(cors()) app.get('/getData', function (req, res) { // 返回数据 })
Im obigen Code verwenden wir das Cors-Modul für die domänenübergreifende Konfiguration, indem wir app.use(cors ())-Methode, die alle domänenübergreifenden Anfragen ermöglicht.
In der Uniapp-Anwendung müssen wir auch die Whitelist konfigurieren, die domänenübergreifende Anforderungen in der Datei manifest.json zulässt. Konkret müssen wir der Datei manifest.json die folgende Konfiguration hinzufügen:
{ "mp-weixin": { "request": { "domainList": [ "http://api.demo.com" ] } } }
Darunter ist „http://api.demo.com“ der Domänenname der Back-End-Schnittstelle, der geändert werden muss der tatsächliche Schnittstellendomänenname.
Wenn keine der oben genannten Methoden das Problem lösen kann, müssen wir weitere Untersuchungen durchführen. Mögliche Probleme sind:
Bei der Entwicklung mobiler Uniapp-Anwendungen ist es ein häufiges Problem, dass die echte Geräte-Debugging-App nicht auf die Schnittstelle zugreifen kann. Normalerweise ist die Ursache dieses Problems der domänenübergreifende Zugriff. Wir können dieses Problem lösen, indem wir das Backend so konfigurieren, dass es den domänenübergreifenden Front-End-Zugriff ermöglicht, und manifest.json in uniapp konfigurieren. Wenn Sie gleichzeitig ein Problem finden, müssen Sie die Fehlermeldung geduldig analysieren, die spezifische Ursache finden und entsprechende Lösungen ergreifen.
Das obige ist der detaillierte Inhalt vonDie Uniapp-App zum Debuggen realer Maschinen kann nicht auf die Schnittstelle zugreifen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!