- Immer noch das Gleiche wie zuvor, schauen wir uns zunächst den Fehlermeldepunkt an: (Beachten Sie, dass der Editor hier H5 verwendet, um domänenübergreifende Probleme zu lösen, die Prinzipien zur Lösung domänenübergreifender Probleme jedoch ähnlich sind.)
Zugriff auf XMLHttpRequest unter „https://aip.baidubce.com/oauth/2.0/token“ vom Ursprung 'http://localhost:8000' wurde durch die CORS-Richtlinie blockiert: Antwort auf Preflight-Anfrage besteht die Zugriffskontrollprüfung nicht: Nein „Access-Control-Allow-Origin“ Der Header ist auf der angeforderten Ressource vorhanden.
- Offensichtlich gibt es CORS, was uns an domänenübergreifende Probleme denken lässt.
- Bei der Verbindung von Front-End und Back-End treten domänenübergreifende Probleme so häufig auf. Warum behebt der Herausgeber dieses Problem und veröffentlicht einen separaten Artikel? Dieses domänenübergreifende Problem tritt beim Aufrufen der Baidu Cloud-Schnittstelle auf. Wenn wir Dokumente anzeigen oder die Texte anderer Personen lesen, wird die URL auch direkt geschrieben, wie folgt: (Der Herausgeber hat sie auch direkt von Anfang an verwendet, daher habe ich einen Fehler gemacht.)
uni.request({
url: 'https://aip.baidubce.com/oauth/2.0/token',
})
- Was ist also die Lösung: (Konfigurieren Sie einen Proxyserver, um domänenübergreifende Probleme zu lösen)
– Die h5-Konfigurationselemente in manifest.json sind wie folgt konfiguriert:
"h5" : {
"devServer" : {
"port" : 8000,
"disableHostCheck" : true,
"proxy" : {
"/baiduApi" : {
"target" : "https://aip.baidubce.com", // 需要跨域的域名
"changeOrigin" : true,
"secure" : false,
"pathRewrite" : {
"^/baiduApi" : ""
}
}
}
},
}
--Die aufrufende URL wird wie folgt geschrieben:
uni.request({
url: '/baiduApi/oauth/2.0/token',
})
- Das Prinzip finden Sie im Artikel des Herausgebers:
- Vollständiger Code